最近想下载个东西却发现网站设置了防盗链,需要修改浏览器向服务器发送的'referer'参数。解决方案有:
(1)可以安装一些浏览器插件或使用整站下载之类的软件进行修改。
(2)自己写个下载器。这里选用开源而且容易入门且网络功能使用方便的Python。
第一步,下载安装Python。
目前的版本有3.5.0和2.7.10,是两种不同的架构,不相互支持。听从前辈的建议,使用2.7.10。
powershell 在windows中已安装。
直接使用 http://learnpythonthehardway.org/book/ 作为入门教程就挺好。有程序设计经验的数小时至一两天就能搞定,新手可能要多花些时间。
此外还有:
第二步,使用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)正则匹配函数写爬虫。
转载本文请联系原作者获取授权,同时请注明本文来自王楠科学网博客。
链接地址:http://blog.sciencenet.cn/blog-2857675-927610.html
上一篇:[原][Matlab][03] 定时运行+完成计算后发送邮件
下一篇:[原][Matlab][04] Midi音乐键盘