尝试使用urllib检索图像时获取401 - Python 2.7

时间:2016-03-16 11:03:47

标签: python python-2.7 urllib2 urllib

我一直在研究从网站上抓取图像的小脚本,但我必须通过身份验证才能获得图像。使用以下代码我可以下载网页,但是我无法获取图像时出现以下错误。

  

文件“/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')

我有点像菜鸟,所以任何帮助都会受到赞赏。

1 个答案:

答案 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)