本节介绍Scrapy核心API,它适用于扩展和中间件的开发人员。

抓取工具

Scrapy API的主要入口点是Crawler 对象,通过from_crawler类方法传递给扩展。此对象提供对所有Scrapy核心组件的访问,这是扩展访问它们并将其功能挂钩到Scrapy的唯一方法。

Extension Manager负责加载和跟踪已安装的扩展,并通过EXTENSIONS设置配置它,其中包含所有可用扩展的字典及其顺序,类似于您配置下载中间件的方式

classscrapy.crawler.Crawler(spiderclssettings)
必须使用scrapy.spiders.Spider子类和 scrapy.settings.Settings对象实例化Crawler 对象。

settings
此搜寻器的设置管理器。

扩展和中间件使用它来访问此爬网程序的Scrapy设置。

有关Scrapy设置的介绍,请参阅设置

对于API请参阅Settings类。

signals
爬虫的信号管理器。

扩展和中间件使用它来将自己挂钩到Scrapy功能。

有关信号的介绍,请参阅信号

对于API,请参阅SignalManager类。

stats
爬虫的统计信息收集器。

这可以从扩展和中间件中使用,以记录其行为的统计信息,或访问其他扩展程序收集的统计信息。

有关统计数据收集的介绍,请参阅统计数据集

对于API,请参阅StatsCollector类。

extensions
跟踪已启用扩展的扩展管理器。

大多数扩展程序不需要访问此属性。

有关扩展的介绍和Scrapy上可用扩展的列表,请参阅扩展

engine
执行引擎,它协调调度程序,下载程序和蜘蛛程序之间的核心爬网逻辑。

某些扩展可能希望访问Scrapy引擎,检查或修改下载程序和调度程序行为,尽管这是一种高级用法,并且此API尚不稳定。

spider
Spider目前正在被抓获。这是构造爬网程序时提供的spider类的实例,它是在crawl()方法中给出的参数之后创建的。
crawl(*args**kwargs)
通过使用给定的argskwargs参数实例化其spider类,同时将执行引擎设置为运动来启动爬网程序 。

返回爬网结束时触发的延迟。

classscrapy.crawler.CrawlerRunner(settings=None)
这是一个方便的助手类,可以在已设置的Twisted 反应器中跟踪,管理和运行爬虫

必须使用Settings对象实例化CrawlerRunner 对象。

除非编写手动处理爬网过程的脚本,否则不应该需要此类(因为Scrapy负责相应地使用它)。有关示例,请参阅脚本中的Run Scrapy

crawl(crawler_or_spidercls*args**kwargs)
使用提供的参数运行爬网程序。

它会调用给定的Crawler crawl()方法,同时跟踪它,以便以后可以停止。

如果crawler_or_spidercls不是Crawler 实例,则此方法将尝试使用此参数创建一个作为赋予它的spider类。

返回爬网结束时触发的延迟。

参数:
  • crawler_or_spiderclsCrawler实例, Spider子类或字符串) – 已创建的爬虫,或项目内的蜘蛛类或蜘蛛的名称来创建它
  • argslist) – 初始化蜘蛛的参数
  • kwargsdict) – 初始化蜘蛛的关键字参数
crawlers
由这个类crawlers开始crawl()并管理的集合。
create_crawler(crawler_or_spidercls)
返回一个Crawler对象。

  • 如果crawler_or_spidercls是Crawler,则按原样返回。
  • 如果crawler_or_spidercls是Spider子类,则为其构造新的Crawler。
  • 如果crawler_or_spidercls是一个字符串,则此函数在Scrapy项目中使用此名称查找蜘蛛(使用蜘蛛加载程序),然后为其创建一个Crawler实例。
join()
返回当所有托管crawlers已完成执行时触发的延迟。
stop()
同时停止所有正在进行的爬行作业。

返回在它们全部结束时触发的延迟。

classscrapy.crawler.CrawlerProcess(settings=Noneinstall_root_handler=True)
基地: scrapy.crawler.CrawlerRunner

一个同时在进程中运行多个scrapy爬虫的类。

此类CrawlerRunner通过添加对启动Twisted reactor和处理关闭信号的支持来扩展,如键盘中断命令Ctrl-C。它还配置顶级日志记录。

CrawlerRunner您未在应用程序中运行其他Twisted 反应器相比,此实用程序应该更合适 。

必须使用Settings对象实例化CrawlerProcess 对象。

参数: install_root_handler – 是否安装root日志记录处理程序(默认值:True)

除非编写手动处理爬网过程的脚本,否则不应该需要此类(因为Scrapy负责相应地使用它)。有关示例,请参阅脚本中的Run Scrapy

crawl(crawler_or_spidercls*args**kwargs)
使用提供的参数运行爬网程序。

它会调用给定的Crawler crawl()方法,同时跟踪它,以便以后可以停止。

如果crawler_or_spidercls不是Crawler 实例,则此方法将尝试使用此参数创建一个作为赋予它的spider类。

返回爬网结束时触发的延迟。

参数:
  • crawler_or_spidercls(Crawler instance, Spider subclass or string) – 已创建的爬虫,或项目内的蜘蛛类或蜘蛛的名称来创建它
  • args – 初始化蜘蛛的参数
  • kwargs – 初始化蜘蛛的关键字参数
crawlers
由这个类crawlers开始crawl()并管理的集合。
create_crawler(crawler_or_spidercls)
返回一个Crawler对象。

  • 如果crawler_or_spidercls是Crawler,则按原样返回。
  • 如果crawler_or_spidercls是Spider子类,则为其构造新的Crawler。
  • 如果crawler_or_spidercls是一个字符串,则此函数在Scrapy项目中使用此名称查找蜘蛛(使用蜘蛛加载程序),然后为其创建一个Crawler实例。
join()
返回当所有托管crawlers已完成执行时触发的延迟。
start(stop_after_crawl=Trueinstall_signal_handlers=True)
此方法从一个扭曲的反应器,其调整池的大小来 REACTOR_THREADPOOL_MAXSIZE,并安装基于DNS缓存DNSCACHE_ENABLEDDNSCACHE_SIZE

如果stop_after_crawl为True,则在所有爬网程序完成后,反应堆将停止使用join()

参数: stop_after_crawlboolean) – 当所有爬虫都完成时停止或不停止反应器
stop()
同时停止所有正在进行的爬行作业。

返回在它们全部结束时触发的延迟。

评论被关闭。