20180705Advanced11Course28Crawler(爬虫制作-框架进阶1)、 20180710Advanced11Course29Crawler爬虫制作-框架进阶2 、 20180711Advanced11Course30Crawler爬虫制作-框架进阶3
一、爬虫简介
爬虫:一个自动提取网页的程序。
爬虫的工作过程:从url开始——>分析获取数据&找url——>递归下去——>结束;下载html——解析获取数据——数据保存
爬虫的应用:(1)抓取小说数据,做内容站;(2)抓取电影/动漫下载站;(3)抓图片;(4)政府的公开招标数据,每天汇集新增的这些数据
爬虫的正义性问题:不违法,但不道德
二、爬虫的攻防
爬虫的访问量很高,会增加并发。该如何处理?
1、robots协议——君子协定
2、请求检测header
3、用户登录——请求的时候带上cookie
4、从用户的行为上来限制。爬虫的频率高,限制IP。发现是爬虫,记录下该IP放入黑名单或返回一个验证码,下次就不允许访问。多个ip(adsl拨号/168伪装IP)
验证码——开源组件做图片识别、打码平台
5、数据的JS动态加载;转图片;JS收集用户操作,然后提交;做用户控件(可以收集更多信息)
除去用户控件外,其它的方式都可以解决。
三、网页版抓取使用
1、下载url
1、下载图片的时候有防盗链怎么办?模拟Referer就可以
2、有的视频文件都没有链接,怎么解决?
3、不知道一个网站有多少网页,怎么爬这个网站的所有数据?可以在网页上进行判断,把url找出来,就可以继续抓取了。
4、对每一步操作进行记录
2、分析数据(爬虫的核心)
爬虫的难点在于分析。
HtmlAgilityPack 包:基于XPath解析
3、获取有用的信息
有些是js动态加载的,必须借助于第三方的driver,比如phantomjs、chrome之类的
问题一:惰性加载/懒加载/延迟加载/按需加载:把url绑定到其它属性,需要看的时候才换到src。提升用户体验,加快速度。如, data-lazy-img
问题二:深层抓取,分页数据 分析分页的规律;拼接url ;循环下载
问题三:Ajax请求
四、抓取移动端
装个模拟器;电脑抓包工具Fidder
电脑抓包wireshark,net开源抓包库用sharpcap,fiddle是抓http请求
五、备注
爬虫,必须对前端有所了解。因为内容是从页面中抓取出来的。
爬虫,基础知识不多,主要是敲代码,去实践。
六、多线程爬虫