6

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

4

1 回答 1

10

您很可能面临 HTTP 基本身份验证。这可以在 urllib2 中完成,但有点烦人。有关如何执行此操作的说明如下:

http://www.voidspace.org.uk/python/articles/urllib2.shtml#id5

但是,如果您还没有对 urllib2 做太多工作,那么现在是切换到 requests 库的好时机。它对用户更加友好 - 并且按照您的要求进行操作 - 与 urllib2 中的凌乱方式不同。

requests.get('https://api.github.com/user', auth=('user', 'pass'))

有关如何请求库的更多详细信息,请访问:http ://docs.python-requests.org/en/latest/user/quickstart/#basic-authentication

要安装 requests 库,您只需执行以下操作:

sudo pip install requests

如果你在窗户上,你应该放下sudo零件。

于 2012-07-05T11:42:37.603 回答