zg手册 之 scrapy 开发(1)-- 介绍
发布日期:2021-09-01 18:44:31 浏览次数:14 分类:技术文章

本文共 1085 字,大约阅读时间需要 3 分钟。

  hot3.png

关于本文档

近期的项目使用 scrapy 作为基本组件的分布式爬虫,在开发的过程中遇到了一些问题,总结记录下, 希望也能给刚接触 scrapy 的朋友一点帮助 ^_^

文档对应的 scrapy 版本:0.22.2

所有的资料方法都来自:

  1. scrapy 源代码

scrapy 简介

是使用python语言开发的网络爬虫框架。 具有下面几个特点:

  1. 设计简单,用户只需要简单定义数据提取规则,让scrapy完成抓取的工作,即可获取数据。
  2. 提供丰富的插件扩展机制
  3. 开源,100%用python编写(基于twisted框架)
  4. 官方文档比较详细

scrapy 主要组件

  1. scrapy engine, 控制整个爬虫的运行,请求调度,spider调用,下载调用,信号事件触发
  2. spider(蜘蛛), 用来解析页面的类,解析后创建新的请求,或者创建数据结果集合
  3. scheduler(调度器), 负责管理请求(来自spider),存入队列,执行时返回给 scrapy引擎
  4. Downloader(下载器),抓取页面并返回结果给spider
  5. Item pipeline(item管道), 处理网页中抽取的数据结果,进行清洗,校验,存储等操作
  6. Downloader middlewares(下载器中间件),下载器与spider之间的勾子,可以对请求和响应的数据进行操作
  7. extensions(扩展),在scrapy启动时初始化,提供增强的辅助功能

上面是我主要用到的一些组件,还有 spider middlerwares等没包含在内

scrapy 运行机制

  1. 引擎调用蜘蛛获取第一个要抓取的url, 存入调度器
  2. 引擎从调度器获取请求url(上面放入的url),
  3. 引擎传递请求 -> 下载中间件 -> 下载器
  4. 下载器下载页面,响应结果 -> 下载中间件 -> 引擎
  5. 引擎把响应结果交给蜘蛛处理
  6. 蜘蛛处理响应,创建结果Item和新的请求
  7. 结果item交给 item管道处理
  8. 新的请求存入调度器,重复上面的操作

本系列包含的主题

  1. 基本网页抓取(spider item pipeline)开发
  2. downloader middlewares 开发
  3. 解决执行 javascript 页面的抓取
  4. downloader(下载器)开发
  5. extensions(扩展)开发
  6. 了解 scheduler
  7. scrapy丰富的扩展,中间件了解
  8. 调试 scrapy,查看运行时内存对象
  9. 一切ok了,发布到 scrapyd 运行吧

原文链接:

转载于:https://my.oschina.net/hopez/blog/214236

转载地址:https://blog.csdn.net/weixin_34124651/article/details/91669566 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:c#配置问题以及简单防止sql注入,连接池问题,sqldatareader对象对于connection对象的释放...
下一篇:Spring中事务内部调用引发的惨案

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月05日 07时55分26秒