在python中,我想向一个url发送请求,该请求会向我返回一些信息。问题是如果我尝试从浏览器访问URL,则会出现一个弹出框并要求输入用户名和密码。我有这个URL的用户名和密码,但是,我不知道如何让python自动完成这些字段来访问URL。
这是我的代码,它返回401错误:
bing = "https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query=%
(term)s&$top=50&$format=json" %__function()
results = urllib2.urlopen(bing).read()
编辑:只是为了澄清,函数function
返回一个名为term
的变量,这是在URL中查询的术语
答案 0 :(得分:9)
您最有可能面临HTTP基本身份验证。这可以在urllib2中完成,但它有点令人厌倦。有关如何执行此操作的说明如下:
http://www.voidspace.org.uk/python/articles/urllib2.shtml#id5
但是如果你还没有完成urllib2的工作,现在是切换到请求库的好时机。它更加用户友好 - 并且你可以做的就是一行调用 - 与urllib2中的杂乱方式不同。
requests.get('https://api.github.com/user', auth=('user', 'pass'))
有关如何在http://docs.python-requests.org/en/latest/user/quickstart/#basic-authentication
找到请求库的详细信息要安装请求库,您只需执行以下操作:
sudo pip install requests
如果您在Windows上,则应删除sudo
部分。