0

bing検索からURLを取得するコードを作成しました。上記のエラーが発生します。

import urllib
import urllib2
accountKey = 'mykey'
username =accountKey
queryBingFor = "'JohnDalton'"
quoted_query = urllib.quote(queryBingFor)

rootURL = "https://api.datamarket.azure.com/Bing/Search/"
searchURL = rootURL + "Image?$format=json&Query=" + quoted_query
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, searchURL,username,accountKey)

handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
readURL = urllib2.urlopen(searchURL).read()

username = authKey を作成しました。誰かが私に言ったように、両方で同じでなければなりません。とにかく、bing のウェブマスター アカウントを作成したときに、ユーザー名を取得できませんでした。それとも私のメールだけですか?私が初心者の間違いを犯した場合は、すみません。Pythonを始めたばかりです。

4

1 に答える 1

0

他の情報がない場合、このサイトが実際にこの形式の認証を必要とする場合、ユーザー名とパスワードが実質的に同じものになる可能性は低いと思われます.

次のようにブラウザでリクエストを実行して動作させることができますか?

https://mykey:mykey@api.datamarket.azure.com/Bing/Search/Image ?$format=json&Query=blah

もしそうなら、少なくとも資格情報が正しいように聞こえますが、Pythonでそれらを使用している方法は間違っていますが、上記は同じエラーで失敗する可能性が高く、資格情報自体が無効であることを示唆しています.

この質問も参照してください。これは、サイトが「標準」認証を行わないことに問題がある可能性があることを示唆しています: urllib2 HTTPPasswordMgr not working - Credentials not sent エラー

また、特定の検索 URL ではなく、サイトのトップ レベル URL をパスワード マネージャーに渡す必要があることも示唆しています。

最後に、このコードを適応させる価値があるかもしれません: http://www.voidspace.org.uk/python/articles/authentication.shtml

あなたのサイトが認証レルムとスキームをチェックして、それらがサポートされていることを確認するためにサイトから送られてきます。

于 2013-08-09T13:00:10.183 に答える