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请求

 五、备注

爬虫,必须对前端有所了解。因为内容是从页面中抓取出来的。

爬虫,基础知识不多,主要是敲代码,去实践。

 六、多线程爬虫

posted @ 2020-11-02 13:40  揽月2020  阅读(61)  评论(0编辑  收藏  举报