Python 下载图片问题,谢谢先

众星烁 发布于 2014/07/22 16:37
阅读 2K+
收藏 0

请问在使用urllib.urlretrieve方法时候如何能添加header来伪装成浏览器呢?

以下是我用来测试下载天涯论坛图片的代码:

    url='http://img3.laibafile.cn/p/l/185552989.gif'
    urllib.urlretrieve(url,'./xx.gif')
    print "loading"

由于他们网站系统设置了反爬虫,所以下载的图片并不是我想要的。 

希望大侠们能给小弟指点,谢谢。

加载中
0
prpr
prpr

urllib似乎做不到,可以用urllib2

import urllib2
 
request = urllib2.Request(uri)
request.add_header('User-Agent', 'fake-client')
response = urllib2.urlopen(request)



众星烁
众星烁
非常感谢~
0
雪梨苹果
雪梨苹果

据我所知,urllib.urlretrieve不能做。。。

我这里有个方法可以做到:

import urllib2
url="http://img3.laibafile.cn/p/l/185552989.gif"
header = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
'Accept':'text/html;q=0.9,*/*;q=0.8',
'Accept-Charset':'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
'Accept-Encoding':'gzip',
'Connection':'close',
'Referer':'http://bbs.tianya.cn/post-no11-3708469-1.shtml'
}
timeout = 5
request = urllib2.Request(url,None,header)
response = urllib2.urlopen(request,None,timeout)
str = response.read()
foo = open("foo.gif","wb")
foo.write(str)
foo.close()



注意一点,Referer必须要设置为tianya网站的,欺骗服务器这是从它网页转来的。。。

众星烁
众星烁
非常感谢~
Xsank
Xsank
绝大多数防盗链都是检测referer
0
小小石
小小石
我记得csdn上有一个专门针对python爬虫的教程,其中有一篇就是伪装成浏览器的,楼主可以搜一下……
众星烁
众星烁
@糊涂青年写代码 哈哈哈,谢谢啊,这个作者关于写python爬虫的博客我前些日子刚刚全都看了一遍,写的很不错。
小小石
小小石
回复 @guxingshuo : http://blog.csdn.net/column/details/why-bug.html回來用網就方便多了,嘿嘿,這個是我白天說的那個,我覺得講的滿好的,之前照着這份文檔做了一個爬漫畫的,哈哈~
众星烁
众星烁
非常感谢~
返回顶部
顶部