尝试使用 urllib 检索图像时出现 401 - Python 2.7

Getting 401 when trying to retrieve image using urllib - 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')

我有点菜鸟,所以任何帮助将不胜感激。

您的代码存在一些问题。首先创建一个 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)