在使用scrapy以下这句话调用抓取过程时,遇到以下错误 return [scrapy.Request(url=self.s_urls, headers=self.headers, callback=self.parse)]   Ignoring response <400 https://aa.com/library/index.html>: HTTP status code is not handled or not allowed 试了很多方法,都没有解决,最后换个函数调用方法,问题解决了。 return [scrapy.http.Request(url=self.

删除项目后,通常需要保留或导出这些项目,以便在其他应用程序中使用这些项目。毕竟,这是刮擦过程的全部目的。 为此,Scrapy为不同的输出格式提供了一组项目导出器,例如XML,CSV或JSON。 使用项目导出器 如果您赶时间,并且只想使用项目导出器输出已删除的数据,请参阅Feed导出。否则,如果您想知道项目导出器如何工作或需要更多自定义功能(默认导出未涵盖),请继续阅读下面的内容。 要使用项目导出器,必须使用其必需的args对其进行实例化。每个项目导出器都需要不同的参数,因此请在内置项目导出器参考中检查每个导出器文档以确定。在实例化导出器之后,您必须: 1.调用方法start_exporting

Scrapy广泛使用信号来通知特定事件发生的时间。您可以在Scrapy项目中捕获一些这些信号(例如使用扩展名)来执行其他任务或扩展Scrapy以添加未提供的开箱即用的功能。 即使信号提供了几个参数,捕获它们的处理程序也不需要接受所有这些参数 – 信号调度机制只会传递处理程序接收的参数。 您可以通过Signals API连接信号(或发送您自己的 信号)。 这是一个简单的示例,展示了如何捕获信号并执行某些操作: from scrapy import signals from scrapy import Spider class DmozSpider(Spider): name = “d

scrapy.statscollectors模块下有几个Stats收集器 ,它们都实现了StatsCollector 类定义的Stats Collector API (它们都是从它们继承的)。 类scrapy.statscollectors.StatsCollector get_value(键,默认=无) 返回给定统计信息键的值,如果不存在则返回默认值。 get_stats() 从当前运行的蜘蛛获取所有统计数据作为词典。 set_value(键,值) 设置给定统计数据键的给定值。 set_stats(统计) 使用stats参数中传递的dict覆盖当前统计信息。 inc_value(key,co

classscrapy.signalmanager.SignalManager(sender = _Anonymous ) connect(接收器,信号,** kwargs ) 将接收器功能连接到信号。 信号可以是任何对象,尽管Scrapy附带了一些预定信号,这些信号记录在信号 部分中。 参数: receiver(callable) – 要连接的函数 signal(object) – 要连接的信号 disconnect(接收器,信号,** kwargs ) 断开接收器功能与信号的连接。这与connect()方法具有相反的效果,并且参数是相同的。 disconnect_a

类scrapy.loader.SpiderLoader 该类负责检索和处理项目中定义的spider类。 可以通过在SPIDER_LOADER_CLASS项目设置中指定其路径来使用自定义蜘蛛装载程序 。它们必须完全实现scrapy.interfaces.ISpiderLoader接口以保证无错执行。 from_settings(设定) Scrapy使用此类方法来创建类的实例。它是使用当前项目设置调用的,它会加载在SPIDER_MODULES 设置模块中递归发现的蜘蛛。 参数: 设置(Settings实例) – 项目设置 load(spider_name ) 获取具有给定名称的Spid

scrapy.settings.SETTINGS_PRIORITIES 设置Scrapy中使用的默认设置优先级的键名和优先级的字典。 每个项目定义一个设置入口点,为其提供标识的代码名称和整数优先级。在设置和检索Settings类中的值时,更高优先级优先于较小优先 级。 SETTINGS_PRIORITIES = { ‘default’: 0, ‘command’: 10, ‘project’: 20, ‘spider’: 30, ‘cmdline’: 40, }   有关每个设置源的详细说明,请参阅: 设置。 scrapy.settings.get_settings_priority

本节介绍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附带的所有蜘蛛中间件组件。有关如何使用它们以及如何编写自己的蜘蛛中间件的信息,请参阅蜘蛛中间件使用指南。 有关默认启用的组件列表(及其订单),请参阅 SPIDER_MIDDLEWARES_BASE设置。 DepthMiddleware  类scrapy.spidermiddlewares.depth.DepthMiddleware DepthMiddleware用于跟踪被抓取站点内每个请求的深度。只要没有先前设置的值(通常只是第一个请求)并将其递增1,它就可以通过设置request.meta [‘depth’] = 0来工作。