Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在项目管道上启动open_spider方法_Python_Python 2.7_Scrapy - Fatal编程技术网

Python 如何在项目管道上启动open_spider方法

Python 如何在项目管道上启动open_spider方法,python,python-2.7,scrapy,Python,Python 2.7,Scrapy,我在Python2.7中使用Scrapy0.20 根据,爬行器向引擎发送请求。然后,在完成整个爬行过程后,项目通过项目管道 因此,当爬行器打开或关闭时,项目管道与此无关。此外,项目管道组件无法知道卡盘何时打开或关闭。因此,open\u spider方法是如何存在于项目管道组件中的?它的意思是,如果您愿意,您可以实现open\u spider()和close\u spider()作为回调。如果不这样做,您的项目管道将在不知道爬行器打开和关闭的情况下运行。如果您实现了这些例程,那么在spider打开

我在Python2.7中使用Scrapy0.20

根据,爬行器向引擎发送请求。然后,在完成整个爬行过程后,项目通过项目管道


因此,当爬行器打开或关闭时,项目管道与此无关。此外,项目管道组件无法知道卡盘何时打开或关闭。因此,
open\u spider
方法是如何存在于项目管道组件中的?

它的意思是,如果您愿意,您可以实现open\u spider()和close\u spider()作为回调。如果不这样做,您的项目管道将在不知道爬行器打开和关闭的情况下运行。如果您实现了这些例程,那么在spider打开和关闭时将调用它们。因此,如果您希望您的项目管道在spider打开和关闭时采取特殊操作,可以通过在管道中编写这些例程来实现这一点。

检查了架构图并阅读了数据流描述后,我注意到以下几点:

  • 数据流描述没有明确说明spider不与项目管道通信
  • spider和项目管道是通过scrapy引擎链接的,因此如果已实现
    open\u spider()
    close\u spider()
    ,则引擎可能是通知项目管道spider已打开或关闭的流程

  • 我想这些不是回调。我的问题是管道如何知道爬行器何时打开。根据架构图,spider在开始工作时不会向项目管道发送任何消息如果这个答案不可接受,那么可能值得向scrapy Google小组询问,或者直接联系开发人员,以获得更详细的架构描述以及spider如何与项目管道通信。