介绍下scrapy框架。
scrapy 是一个快速(fast)、高层次(high-level)的基于 python 的 web 爬虫构架,用于抓取web站点并从页面中提取结构化的数据。scrapy 使用了 Twisted异步网络库来处理网络通讯。
为什么要使用scrapy框架?scrapy框架有哪些优点?
它更容易构建大规模的抓取项目
它异步处理请求,速度非常快
它可以使用自动调节机制自动调整爬行速度
scrapy框架有哪几个组件/模块?简单说一下工作流程。
scrapy的去重原理
1.找到Request类:需要将dont_filter设置为False开启去重,默认是True,没有开启去重;
2.对于每一个url的请求,调度器都会根据请求得相关信息加密得到一个指纹信息,并且将指纹信息和set()集合中的指纹信息进行比对,如果set()集合中已经存在这个数据,就不在将这个Request放入队列中。如果set()集合中没有存在这个加密后的数据,就将这个Request对象放入队列中,等待被调度。
scrapy中间件有哪几种类,你用过哪些?
下载中间件,
爬虫发起请求request的时候调用,列如更换修改代理ip,修改UA
爬虫中间件
浏览器