|||
最近想下载个东西却发现网站设置了防盗链,需要修改浏览器向服务器发送的'referer'参数。解决方案有:
(1)可以安装一些浏览器插件或使用整站下载之类的软件进行修改。
(2)自己写个下载器。这里选用开源而且容易入门且网络功能使用方便的Python。
第一步,下载安装Python。
目前的版本有3.5.0和2.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://woodpecker.org.cn/diveintopython/toc/index.html
http://woodpecker.org.cn/abyteofpython_cn/chinese/
第二步,使用python自带的urllib2和urllib链接库中的函数写下载器并添加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)正则匹配函数写爬虫。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-6-22 18:55
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社