爬虫蜘蛛Scrapy核心Crawler API详细介绍(63)python Scrapy教程1.51以上版本
本节介绍Scrapy核心API,它适用于扩展和中间件的开发人员。
抓取工具
Scrapy API的主要入口点是Crawler
对象,通过from_crawler
类方法传递给扩展。此对象提供对所有Scrapy核心组件的访问,这是扩展访问它们并将其功能挂钩到Scrapy的唯一方法。
Extension Manager负责加载和跟踪已安装的扩展,并通过EXTENSIONS
设置配置它,其中包含所有可用扩展的字典及其顺序,类似于您配置下载中间件的方式。
- class
scrapy.crawler.
Crawler
(spidercls,settings ) - 必须使用
scrapy.spiders.Spider
子类和scrapy.settings.Settings
对象实例化Crawler 对象。signals
- 此爬虫的信号管理器。
扩展和中间件使用它来将自己挂钩到Scrapy功能。
有关信号的介绍,请参阅信号。
对于API,请参阅
SignalManager
类。
stats
- 此爬虫的统计信息收集器。
这可以从扩展和中间件中使用,以记录其行为的统计信息,或访问其他扩展程序收集的统计信息。
有关统计数据收集的介绍,请参阅统计数据集。
对于API,请参阅
StatsCollector
类。
extensions
- 跟踪已启用扩展的扩展管理器。
大多数扩展程序不需要访问此属性。
有关扩展的介绍和Scrapy上可用扩展的列表,请参阅扩展。
engine
- 执行引擎,它协调调度程序,下载程序和蜘蛛程序之间的核心爬网逻辑。
某些扩展可能希望访问Scrapy引擎,检查或修改下载程序和调度程序行为,尽管这是一种高级用法,并且此API尚不稳定。
spider
- Spider目前正在被抓获。这是构造爬网程序时提供的spider类的实例,它是在
crawl()
方法中给出的参数之后创建的。
- class
scrapy.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_spidercls(
Crawler
实例,Spider
子类或字符串) – 已创建的爬虫,或项目内的蜘蛛类或蜘蛛的名称来创建它 - args(list) – 初始化蜘蛛的参数
- kwargs(dict) – 初始化蜘蛛的关键字参数
- crawler_or_spidercls(
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
()- 同时停止所有正在进行的爬行作业。
返回在它们全部结束时触发的延迟。
- class
scrapy.crawler.
CrawlerProcess
(settings = None,install_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
实例,Spider
子类或字符串) – 已创建的爬虫,或项目内的蜘蛛类或蜘蛛的名称来创建它 - args(list) – 初始化蜘蛛的参数
- kwargs(dict) – 初始化蜘蛛的关键字参数
- crawler_or_spidercls(
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 = True )- 此方法从一个扭曲的反应器,其调整池的大小来
REACTOR_THREADPOOL_MAXSIZE
,并安装基于DNS缓存DNSCACHE_ENABLED
和DNSCACHE_SIZE
。如果stop_after_crawl为True,则在所有爬网程序完成后,反应堆将停止使用
join()
。参数: stop_after_crawl(boolean) – 当所有爬虫都完成时停止或不停止反应器
stop
()- 同时停止所有正在进行的爬行作业。
返回在它们全部结束时触发的延迟。
评论被关闭。