python 下载文件 & 防盗链

偶然下载一种类型的资源,发现好多翻页,右键另存什么的,不胜其烦。

决定用python写几句代码搞定。核心代码如下:

from urllib import urlretrieve



from urllib import urlretrieve

urlretrieve(url,save_to_path,show_download_progress)

    

至于url,简单的用爬虫的思路得到的。非本文的重点,不再啰嗦。

问题来了,不知道为什么,下载的所有文件都是42k!

百思不得其解,应该是某种限制,脑袋不灵光,想了半天才想到,应该是防盗链。

查了下,于是用wireshark模拟了一下,发现header参数太多,弄不好每个都要设(取决于人家网站的逻辑设计),于是不管三七二十一,先给射了个Reffer。

不幸的成功了。好吧,不用再研究了,收工,特记录之。

以上问题的解决方案:

import urllib2

req = urllib2.Request('http://www.example.com/')

req.add_header('Referer', 'http://www.python.org/')

resp = urllib2.urlopen(req)

content = resp.read()

接下来,只需要吧content写到文件里面去就好了,此处略。

 

完整demo如下:

import urllib2



req = urllib2.Request('http://61.164.149.80/ftp1/0905/models_z/1014/3.rar')

req.add_header('Referer','http://www.coolsc.net/3D-Details/2009/10/14/29468-0.htm')

resp = urllib2.urlopen(req)

content = resp.read()

f = open(r'D:\test2.rar','wb')

f.write(content)

f.close()

  

你可能感兴趣的:(python)