nwang1986的个人博客分享 http://blog.sciencenet.cn/u/nwang1986

博文

[原][Python][01] 下载器+破防盗链

已有 3170 次阅读 2015-10-12 15:49 |个人分类:[原创]|系统分类:科研笔记| Python, 下载, 防盗链

最近想下载个东西却发现网站设置了防盗链,需要修改浏览器向服务器发送的'referer'参数。解决方案有:

(1)可以安装一些浏览器插件或使用整站下载之类的软件进行修改。

(2)自己写个下载器。这里选用开源而且容易入门且网络功能使用方便的Python


第一步,下载安装Python。

目前的版本有3.5.02.7.10,是两种不同的架构,不相互支持。听从前辈的建议,使用2.7.10

https://www.python.org/downloads/release/python-2710/ 下载 Windows x86-64 MSI installer 。

按照 http://learnpythonthehardway.org/book/ex0.html 推荐的步骤进行安装,以及使用 notepad++powershell 做为开发辅助软件。

notepad++下载页面:https://notepad-plus-plus.org/download/v6.8.3.html

powershell 在windows中已安装。


直接使用 http://learnpythonthehardway.org/book/ 作为入门教程就挺好。有程序设计经验的数小时至一两天就能搞定,新手可能要多花些时间。

此外还有:

http://docs.pythontab.com/

http://www.pythontab.com/

http://woodpecker.org.cn/diveintopython/toc/index.html

http://woodpecker.org.cn/abyteofpython_cn/chinese/


第二步,使用python自带的urllib2urllib链接库中的函数写下载器并添加referer参数。

#down.py的源码

#------------------------

import urllib2

imgsrc = 'http://tu.weibonvren.com/hd/3Agirl/No.411/24meinv.com-37.jpg'

webreferer = 'http://tu.weibonvren.com'

request = urllib2.Request(imgsrc)

request.add_header('Referer',webreferer)

response = urllib2.urlopen(request)

imgfile = response.read()

f = open('a.jpg','wb')

f.write(imgfile)

f.close()

#------------------------

在powershell中将文件目录改到down.py的路径,然后运行python down.py然后查看下载的a.jpg文件。

可以通过把request.add_header('Referer',webreferer)这句前面加#注释掉的情况对比有无referer的差别。


第三步,写爬虫。

进而可以使用re链接库的re.findall(regular_str,urlcode,re.I|re.M)正则匹配函数写爬虫。

 



https://blog.sciencenet.cn/blog-2857675-927610.html

上一篇:[原][Matlab][03] 定时运行+完成计算后发送邮件
下一篇:[原][Matlab][04] Midi音乐键盘
收藏 IP: 130.153.150.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-6-22 18:55

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部