Python中,使用urllib.urlretrieve()函数下载图片,能不能添加Headers?

做一个爬图片的爬虫时遇到了反盗链的问题,需要添加一个Headers(Referer),但是惯于使用的urllib.urlretrieve(url,fi…
关注者
18
被浏览
22,481

7 个回答

data里面就可以加啊

{'Refer':""}

一时大意,公交车上挤糊涂了,应该是headers里加头文件,但是urlretrieve没有headers参数

之前有研究过训练批量下载和aria2批量下载,有需要的话,明天放出代码

“urllib2 can accept a

Request

object to set the headers for a URL request,urllib accepts only a URL. That means, you cannot masquerade your User Agent string etc.

urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。这意味着,你不可以伪装你的User Agent字符串等。”

-----------------------------------------------------------------------------------------------------------

给出一段requests库的代码(两种方法,PIL的会自动压缩一下):

# coding=u8
import urllib
import requests
from PIL import Image
from StringIO import StringIO
headers={
    'Referer':'http://manhua.dmzj.com/'
def saveImg1(imgurl,imgpath):
    response = requests.get(imgurl,headers=headers)
    with open(imgpath, 'wb') as f:
        f.write(response.content)
        f.flush()
def saveImg2(imgurl,imgpath):
    response = requests.get(imgurl,headers=headers)
    img = Image.open(StringIO(response.content))
    img.save(imgpath)
    img.close()
def main():