2016-03-16 41 views
0

我一直在研究从网站抓取图像的小脚本,但我必须通过身份验证才能获取图像。使用下面的代码,我能够拉下网页,但我有麻烦得到的图像,我得到以下错误。尝试使用urllib检索图像时获取401 - Python 2.7

File "/usr/lib/python2.7/urllib.py", line 386, in http_error_default raise IOError, ('http error', errcode, errmsg, headers) IOError: ('http error', 401, 'Not Authorized',)

我认为这是我没有将我的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

您的代码存在一些问题。首先创建一个urllib2对象,为请求对象应用cookie,然后使用urlib对象。最后一个对象没有任何访问urlib2对象的权限,所以这就是你得到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) 
+0

谢谢Cezar, 这正是我所需要的。 –

相关问题