爬虫蜘蛛Scrapy核心Crawler API详细介绍(63)python Scrapy教程1.51以上版本
本节介绍Scrapy核心API,它适用于扩展和中间件的开发人员。
抓取工具
Scrapy API的主要入口点是Crawler
对象,通过from_crawler
类方法传递给扩展。此对象提供对所有Scrapy核心组件的访问,这是扩展访问它们并将其功能挂钩到Scrapy的唯一方法。
Extension Manager负责加载和跟踪已安装的扩展,并通过EXTENSIONS
设置配置它,其中包含所有可用扩展的字典及其顺序,类似于您配置下载中间件的方式。
- class
scrapy.crawler.
spiderclsCrawler(
settings,
)
- 必须使用
scrapy.spiders.Spider
子类和scrapy.settings.Settings
对象实例化Crawler 对象。stats
- 此爬虫的统计信息收集器。
这可以从扩展和中间件中使用,以记录其行为的统计信息,或访问其他扩展程序收集的统计信息。
有关统计数据收集的介绍,请参阅统计数据集。
对于API,请参阅
StatsCollector
类。
extensions
- 跟踪已启用扩展的扩展管理器。
大多数扩展程序不需要访问此属性。
有关扩展的介绍和Scrapy上可用扩展的列表,请参阅扩展。
spider
- Spider目前正在被抓获。这是构造爬网程序时提供的spider类的实例,它是在
crawl()
方法中给出的参数之后创建的。
- class
scrapy.crawler.
settings=NoneCrawlerRunner(
)
- 这是一个方便的助手类,可以在已设置的Twisted 反应器中跟踪,管理和运行爬虫。
必须使用
Settings
对象实例化CrawlerRunner 对象。除非编写手动处理爬网过程的脚本,否则不应该需要此类(因为Scrapy负责相应地使用它)。有关示例,请参阅脚本中的Run Scrapy。
crawler_or_spiderclscrawl(
*args,
**kwargs,
)
- 使用提供的参数运行爬网程序。
它会调用给定的Crawler
crawl()
方法,同时跟踪它,以便以后可以停止。如果crawler_or_spidercls不是
Crawler
实例,则此方法将尝试使用此参数创建一个作为赋予它的spider类。返回爬网结束时触发的延迟。
参数:
crawler_or_spiderclscreate_crawler(
)
- 返回一个
Crawler
对象。- 如果crawler_or_spidercls是Crawler,则按原样返回。
- 如果crawler_or_spidercls是Spider子类,则为其构造新的Crawler。
- 如果crawler_or_spidercls是一个字符串,则此函数在Scrapy项目中使用此名称查找蜘蛛(使用蜘蛛加载程序),然后为其创建一个Crawler实例。
join()
- 返回当所有托管
crawlers
已完成执行时触发的延迟。
stop()
- 同时停止所有正在进行的爬行作业。
返回在它们全部结束时触发的延迟。
- class
scrapy.crawler.
settings=NoneCrawlerProcess(
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。
crawler_or_spiderclscrawl(
*args,
**kwargs,
)
- 使用提供的参数运行爬网程序。
它会调用给定的Crawler
crawl()
方法,同时跟踪它,以便以后可以停止。如果crawler_or_spidercls不是
Crawler
实例,则此方法将尝试使用此参数创建一个作为赋予它的spider类。返回爬网结束时触发的延迟。
参数: - crawler_or_spidercls(
Crawler
instance,Spider
subclass or string) – 已创建的爬虫,或项目内的蜘蛛类或蜘蛛的名称来创建它 - args – 初始化蜘蛛的参数
- kwargs – 初始化蜘蛛的关键字参数
- crawler_or_spidercls(
crawlers
- 由这个类
crawlers
开始crawl()
并管理的集合。
crawler_or_spiderclscreate_crawler(
)
- 返回一个
Crawler
对象。- 如果crawler_or_spidercls是Crawler,则按原样返回。
- 如果crawler_or_spidercls是Spider子类,则为其构造新的Crawler。
- 如果crawler_or_spidercls是一个字符串,则此函数在Scrapy项目中使用此名称查找蜘蛛(使用蜘蛛加载程序),然后为其创建一个Crawler实例。
join()
- 返回当所有托管
crawlers
已完成执行时触发的延迟。
stop_after_crawl=Truestart(
install_signal_handlers=True,
)
- 此方法从一个扭曲的反应器,其调整池的大小来
REACTOR_THREADPOOL_MAXSIZE
,并安装基于DNS缓存DNSCACHE_ENABLED
和DNSCACHE_SIZE
。如果stop_after_crawl为True,则在所有爬网程序完成后,反应堆将停止使用
join()
。参数: stop_after_crawl(boolean) – 当所有爬虫都完成时停止或不停止反应器
stop()
- 同时停止所有正在进行的爬行作业。
返回在它们全部结束时触发的延迟。
评论被关闭。