您好我有很长一系列的图片网址(例如site.com/pic.jpg
),我正在为我的程序检索(在Python v2.6中)。我正在使用urllib.urlretreive()
。有时,网址会提示我输入用户名和密码。所以我将urllib.urlretreive()
置于try / except以避免这些网址,但我仍然需要插入一个假的用户名和密码来提示触发try / except跳过该url的错误。当有密码请求并且自动跳过网址时,我有没有办法感觉到?这是一个非常长的列表,我不想在这里等待偶尔推进输入......谢谢
答案 0 :(得分:2)
如果站点具有HTTP身份验证,则需要在请求中添加标头以插入用户名和密码(伪造或其他)。以下是使用urllib2
。
import base64
import urllib2
headers = {'Authorization': 'Basic ' + base64.encodestring('[username]:[password]')}
req = urllib2.Request(url, data, headers)
resp = urllib2.urlopen(req).read()
如果用户名/密码不正确,将返回urllib2.HTTPError: HTTP Error 401: Unauthorized
,但如果不需要,服务器将忽略身份验证。