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

ado*_*tyd 6 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()
Run Code Online (Sandbox Code Playgroud)

编辑:只是为了澄清,该函数function返回一个名为变量的变量,该变量term在URL中被查询

Mar*_*ina 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'))
Run Code Online (Sandbox Code Playgroud)

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

要安装请求库,您只需要:

sudo pip install requests
Run Code Online (Sandbox Code Playgroud)

如果你在窗户上,你应该放弃sudo部分.