本节介绍Scrapy核心API,它适用于扩展和中间件的开发人员。 抓取工具 Scrapy API的主要入口点是Crawler 对象,通过from_crawler类方法传递给扩展。此对象提供对所有Scrapy核心组件的访问,这是扩展访问它们并将其功能挂钩到Scrapy的唯一方法。 Extension Manager负责加载和跟踪已安装的扩展,并通过EXTENSIONS设置配置它,其中包含所有可用扩展的字典及其顺序,类似于您配置下载中间件的方式。 classscrapy.crawler.Crawler(spidercls,settings ) 必须使用scrapy.spiders.Spider子类

扩展框架提供了一种将自己的自定义功能插入Scrapy的机制。 扩展只是在Scrapy启动时实例化的常规类,当初始化扩展时。 扩展设置 扩展使用Scrapy设置来管理其设置,就像任何其他Scrapy代码一样。 扩展程序通常使用自己的名称为其设置添加前缀,以避免与现有(和将来)扩展冲突。例如,处理Google Sitemaps的假设扩展将使用诸如GOOGLESITEMAP_ENABLED,GOOGLESITEMAP_DEPTH等设置 。 加载和激活扩展 通过实例化扩展类的单个实例,在启动时加载和激活扩展。因此,所有扩展初始化代码必须在类构造函数(__init__方法)中执行。 要使扩展可用,请将其

本节介绍使用Scrapy时的常见做法。这些内容涉及许多主题,并且通常不属于任何其他特定部分。   从脚本运行Scrapy 您可以使用API从脚本运行Scrapy,而不是运行Scrapy的典型方法。scrapy crawl 请记住,Scrapy是建立在Twisted异步网络库之上的,因此您需要在Twisted reactor中运行它。 您可以用来运行蜘蛛的第一个实用程序是 scrapy.crawler.CrawlerProcess。该类将为您启动Twisted reactor,配置日志记录并设置关闭处理程序。此类是所有Scrapy命令使用的类。 这是一个示例,展示如何使用它运行单个蜘蛛

Scrapy配有内置的telnet控制台,用于检查和控制Scrapy运行过程。telnet控制台只是在Scrapy进程中运行的常规python shell,所以你可以从中做任何事情。 telnet控制台是一个内置的Scrapy扩展,默认启用,但你也可以根据需要禁用它。有关扩展本身的更多信息,请参阅 Telnet控制台扩展。 如何访问telnet控制台 telnet控制台侦听TELNETCONSOLE_PORT设置中定义的TCP端口 ,默认为6023。要访问控制台,您需要键入: telnet localhost 6023 >>>   您需要在Windows中默认安装的

Scrapy提供了一种方便的工具,用于以键/值的形式收集统计数据,其中值通常是计数器。该工具称为统计收集器,可以通过Crawler API的stats 属性进行访问,如下面的Common Stats Collector使用部分中的示例所示。 但是,统计信息收集器始终可用,因此无论是否启用统计信息收集,您始终可以将其导入模块并使用其API(增加或设置新的统计信息键)。如果它被禁用,API仍然可以工作,但它不会收集任何东西。这旨在简化统计信息收集器的使用:您应该花费不超过一行代码来收集蜘蛛,Scrapy扩展或您使用统计信息收集器的任何代码中的统计信息。 统计信息收集器的另一个特性是它非常有效(启用

在一个项目被蜘蛛抓取之后,它被发送到项目管道,该项目管道通过顺序执行的几个组件处理它。 每个项目管道组件(有时简称为“项目管道”)是一个实现简单方法的Python类。他们收到一个项目并对其执行操作,同时决定该项目是否应该继续通过管道或被丢弃并且不再处理。 项目管道的典型用途是: 清理HTML数据 验证已删除的数据(检查项目是否包含某些字段) 检查重复项(并删除它们) 将已删除的项目存储在数据库中 编写自己的项目管道 每个项管道组件都是一个必须实现以下方法的Python类: process_item(自我,项目,蜘蛛) 为每个项目管道组件调用此方法。process_item() 必须要么:返回带