scrapy分页抓取网页(Python开发的一个web抓取框架(上)|官网)

优采云 发布时间: 2022-02-05 07:21

  scrapy分页抓取网页(Python开发的一个web抓取框架(上)|官网)

  Scrapy,一个用 Python 开发的网页抓取框架。

  1 简介

  Python 即时网络爬虫最初的目标是把互联网变成一个大数据库。纯开源代码并不是开源的全部。开源的核心是“开放思维”,它聚合了最好的想法、技术和人才。所以会提到很多主导产品,比如Scrapy、ScrapingHub、Import.io等。

  本文简要介绍了 Scrapy 的架构。是的,通用提取器 gsExtractor 将被集成到 Scrapy 架构中。

  请注意,本文不想重复原文内容,而是为开源Python爬虫的发展方向寻找参考,并以近9年开发网络爬虫的经验为基准,所以这篇文章收录了作者的很多主观评论。如果想阅读Scrapy官方原文,请点击Scrapy官网架构。

  2、Scrapy架构图

  

  蜘蛛是为特定目标编写的内容提取器网站,这是通用网络爬虫框架中最可定制的部分。当你使用 Scrapy 创建爬虫项目时,会生成一个爬虫架。只需填写代码,根据其运行方式填写,即可融入到Scrapy的整体数据流中。Python实时网络爬虫开源项目的目标是节省程序员一半以上的时间。关键是提高Spider的定义和测试速度。解决方案见1分钟快速生成网页内容提取器,让整个Scrapy爬虫系统达到快速定制的目的。

  3、Scrapy的数据流(Data Flow)

  Scrapy 中的数据流由执行引擎控制。以下原文摘自 Scrapy 官网。我根据自己的猜测发表评论,为 GooSeeker 开源爬虫的进一步发展指明方向:

  谁来准备 URL?看来是Spider自己准备的,所以可以猜到Scrapy架构部分(不包括Spider)主要是用于事件调度的,与URL的存储无关。它看起来类似于 GooSeeker 会员中心的爬虫指南针。为目标网站准备一批URL,放入罗盘中,为爬虫调度操作做准备。所以,这个开源项目的下一个目标是将 URL 管理放在一个集中的调度库中。

  看到这个其实挺难理解的,需要看一些其他的文档才能理解。继第一点之后,引擎从Spider获取URL后,将其封装成Request,交给事件循环,由Scheduler采集,进行调度管理。暂且理解为对Request进行排队。引擎现在查找调度程序接下来要下载的网页的地址。

  从调度器申请任务,将申请的任务交给下载器。下载器和引擎之间有一个下载器中间件。这是开发框架的一个重要亮点。开发人员可以在这里进行一些自定义。延期。

  下载完成后,会生成一个Response,通过下载器中间件交给引擎。请注意,Response 和前面的 Request 的首字母大写。虽然没看过其他的Scrapy文档,但我猜这是Scrapy框架内部的一个事件对象,也可以推断它是一个异步事件驱动的引擎,就像DS机器的三级事件循环,这对于高性能、低开销的引擎来说是必须的。

  一个中间件再次出现,给了开发者足够的发挥空间。

  每个蜘蛛按顺序爬取一个网页,当一个完成后,再构造一个Request事件,开始对另一个网页的爬取。

  事件分发引擎。

  连续运行。

  4.接下来的工作

  接下来,我们将进一步研究Scrapy的文档,实现Python即时网络爬虫与Scrapy的集成。

  5.文档修改历史

  2016-06-08:V1.0,首次发布

  上一章爬取京东商品列表 下一章Scrapy入门方案回顾

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线