从python脚本访问受密码保护的URL

时间:2012-07-05 11:15:24

标签: python

在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中查询的术语

1 个答案:

答案 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部分。