2017-06-22 72 views
0

我在scrapy項目中有2個蜘蛛。他們工作得很好,併產生所需的輸出項目。當通過CrawlerRunner觸發時,從scrapy抓取檢索抓取的物品

我想在Web應用程序的後臺作業中執行這些蜘蛛。

一切安裝完畢 - 一個使用Redis的後臺作業設置的Flask應用程序 - 前端等待結果 - 一切正常。

除了我似乎無法解決如何從蜘蛛執行時得到結果項目。

我來最接近的似乎是這個問題的答案

Get Scrapy crawler output/results in script file function

,但它似乎指的是舊版本scrapy的(我使用1.4.0)和我得到棄用警告

'ScrapyDeprecationWarning:從scrapy.xlib.pydispatch導入已被棄用,並且在將來的Scrapy版本中將不再受支持。如果您只想連接信號,請使用from_crawler類方法,否則直接根據需要導入pydispatch。請參閱:https://github.com/scrapy/scrapy/issues/1762'

檢查GitHub的問題表明,這不會左右V1.1.0從工作

那麼,誰能告訴我現在該怎麼做呢?

+0

在GitHub的問題提到說,展示瞭如何使用'from_crawler'方法連接新版Scrapy中的信號。 –

+0

是的,沒錯,但是我從後臺作業中調用了'CrawlerRunner'。如果我將示例'@ classmethod'放在那裏,它不會被scrapy框架調用。 – freeloader

回答

1

原來這很容易 - 晚上對我來說肯定太晚了。

更換

from scrapy.xlib.pydispatch import dispatcher

from pydispatch import dispatcher

,因爲它顯然是在貶低警告

otherwise import pydispatch directly if needed.