我已经制作了一个代码来获取bing搜索的网址。它给出了上面提到的错误。
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。
答案 0 :(得分:0)
在没有任何其他信息的情况下,如果该网站实际需要这种形式的授权,那么有效的用户名和密码似乎不一样。
您是否可以通过在浏览器中执行以下操作来使其正常工作?
https://mykey:mykey@api.datamarket.azure.com/Bing/Search/Image $格式= JSON&安培;查询=嗒嗒
如果是这样,那么在lerast它听起来像是正确的,并且它在python中使用它们的方式是错误的,但更可能的是上述将失败并出现相同的错误,表明凭证本身无效。< / p>
另请参阅此问题,这表明可能存在问题,即网站未执行“标准”验证:urllib2 HTTPPasswordMgr not working - Credentials not sent error
它还建议您可能需要将站点的顶级URL传递给密码管理器而不是特定的搜索URL。
最后,可能值得调整此代码: http://www.voidspace.org.uk/python/articles/authentication.shtml
让您的网站检查身份验证领域和计划网站正在向您发送检查它们是否受支持。