我一直在研究从网站上抓取图像的小脚本,但我必须通过身份验证才能获得图像。使用以下代码我可以下载网页,但是我无法获取图像时出现以下错误。
文件“/usr/lib/python2.7/urllib.py”,第386行,http_error_default 提出IOError,('http error',errcode,errmsg,headers) IOError :('http error',401,'未授权',)
我认为我没有将我的cookie传递给urllib但我传递给urllib2。
我已经检查过我能够提取不需要身份验证的图像。
我使用的代码如下,
import urllib, urllib2
opener = urllib2.build_opener()
opener.addheaders.append(('Cookie','CookieValue'))
urllib.urlretrieve("https://www.example.com/image.jpg", 'image.jpg')
我有点像菜鸟,所以任何帮助都会受到赞赏。
答案 0 :(得分:0)
您的代码存在一些问题。首先,创建一个urllib2对象,为请求对象应用cookie,然后使用urlib对象。最后一个对象没有对urlib2对象,cookie的任何访问权....所以这就是你获得401的原因。不允许。
在这种情况下:这是一个有效的代码,它基于urllib2。
import urllib2
opener = urllib2.build_opener()
opener.addheaders.append(('walley','GA1.2.1786704263.1458131937'))
responce = opener.open('http://graphics8.nytimes.com/images/2011/10/11/science/13recipehealth/13recipehealth-articleLarge-v2.jpg').read()
with open('new_jpg', 'wb') as out:
out.write(responce)