python 下载文件 & 防盗链
2014-10-07 17:47
141 查看
偶然下载一种类型的资源,发现好多翻页,右键另存什么的,不胜其烦。
决定用python写几句代码搞定。核心代码如下:
至于url,简单的用爬虫的思路得到的。非本文的重点,不再啰嗦。
问题来了,不知道为什么,下载的所有文件都是42k!
百思不得其解,应该是某种限制,脑袋不灵光,想了半天才想到,应该是防盗链。
查了下,于是用wireshark模拟了一下,发现header参数太多,弄不好每个都要设(取决于人家网站的逻辑设计),于是不管三七二十一,先给射了个Reffer。
不幸的成功了。好吧,不用再研究了,收工,特记录之。
以上问题的解决方案:
接下来,只需要吧content写到文件里面去就好了,此处略。
完整demo如下:
决定用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->FTP上传下载文件
- Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup) (转)
- Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup)
- python 3.3 下载带有防盗链的文件
- Python抓取网页&批量下载文件方法初探(正则表达式+BeautifulSoup)
- python实践 - 下载文件
- Python入门的36个例子 之 28 -> Pickle —— 利用文件存储对象
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- Python处理MLDonkey 下载中文文件乱码问题 (2)
- Python 获取下载文件的大小
- 如何使 FlashGet "正常合法" 下载 Session 中的自定义文件链接呢? JSP/Servlet 实现!
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- Control Study->AdRotator广告控件显示自定义配置文件中广告以及与DataGrid控件结合使用显示图片(示例代码下载)
- ASP.NET 2.0 文件下载(支持大文件、防盗链)
- 实现任意文件下载 FileDownload使用教程
- 利用adodb.stream直接下载任何后缀的文件(防盗链)
- Python处理MLDonkey 下载中文文件乱码问题
- 如何破解一些网站防盗链,收费下载文件呢
- Python入门的36个例子 之 18 -> Modules —— 将它们放到不同的文件里