路飞学城Python-Day153
2024-09-03 01:47:23
Scrapy核心组件
引擎
用来处理这个系统的数据流处理,出发事务(框架核心)
引擎会监测到爬虫文件中有没有定义url,如果有url,引擎就会调用一个startrequest的一个父类的方法,对爬虫文件中起始url列表发起请求,这些对象都会提交给引擎
管道
负责处理爬虫从网页中抽取出来的实体,主要的功能是持久化实体,验证实体的有效性、清除不需要的信息。当页面被爬虫解析后,将被发送到项目管道中,并经过几个特定的次序处理数据。
管道接收到了(item)数据之后,管道完成最后的数据持久化存储
调度器
用来接收引擎发送过来的请求对象,压入队列(对网址进行去重的操作),并在引擎再起请求的时候返回,可以想象成一个url(抓取网页的网址或者链接)的优先队列,由它决定下一个要抓取的网址是什么
引擎对url的调用提交的对象都会放入调度器的队列中,调度器对队列中的请求进行请求的页面数据的下载,页面的数据就是有调度器中调度请求给下载器
下载器
用于下载网页内容,并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)
下载器拿到调度器解析好的请求之后,去互联网中拿到请求中解析的内容,下载数据,页面数据下载完成后存储在下载器中,下载器下载的页面数据会交给爬虫
爬虫文件
爬虫主要是干活的,用于从特定的网页提取自己需要的信息,即所谓的实体(item)用户也可以从中提取出链接,让爬虫再次抓取下一个页面
爬虫拿到下载器下载的所有的页面数据之后就会对页面数据中的内容进行解析,调用parse方法解析,解析的数据值放入item中
最新文章
- Vagrant基础简要记录
- Ionic 的 ng-class 在聊天功能上面的巧妙运用
- mysql forget root password
- Aspose Cells 添加数据验证(动态下拉列表验证)
- asp.net 网站访问变慢
- 如何使用 App Studio 快速定制你自己的 Universal Windows App
- 【转】阿里2015校招面试回忆(成功拿到offer)
- j2ee项目后置类代码实现跳出iframe页面跳转
- Http通讯协议在.net下的实现方法
- hdoj 4786 Fibonacci Tree【并查集+最小生成树(kruskal算法)】
- Java基础知识强化38:StringBuffer类之StringBuffer的添加功能
- 转载:MAT Memory Analyzer Tool使用示例
- css控制file控件透明 漂浮
- Java 批量修改文件夹里面的文件的名字
- 利用postman 实现Get和Post测试
- Django_Form验证(二),ajax验证
- Linux 第十三天
- [20180118]tstats的问题.txt
- C语言函数入参压栈顺序为什么是从右向左?
- Android开发入门要点记录:四大组件
热门文章
- android 下载网络图片并缓存
- 洛谷 P2805 BZOJ 1565 植物大战僵尸
- AT+CSMP 设置短消息文本参数
- innodb_max_purge_lag
- configure: error: XML configuration could not be found
- CSS学习(十六)-HSLA颜色模式
- 基于ZF中的.htaccess文件学习Apache的Rewrite语法
- Python学习笔记24:Django搭建简单的博客站点(二)
- Java Break和continue实现goto功能
- 如何用jQuery实现div随鼠标移动而移动?(详解)----2017-05-12