2015-06-02 51 views
0

我在抓取每個用戶的數據,我不知道整個時間段內是否會有數據。因此,我想先大量調用API,然後如果有結果,則在該大塊內調用API以獲得較小的時間增量。我最初試圖抓取大塊的數據,但API似乎有一些記錄的最大記錄要顯示,有時只顯示記錄的一部分,導致json格式化問題和不完整的數據。根據之前Request對象的響應對象的長度,編寫一個可以生成新的Request對象的蜘蛛的智能方法是什麼?我沒有嘗試過任何東西,因爲我所能想到的是在蜘蛛的分析方法中創建請求,但這似乎是錯誤的。感謝您提供我在文檔中遺漏的任何建議/指示。根據事先請求的結果做出scrapy請求?

回答

0

parse方法(或任何其他回調方法,parse只是默認值)內創建請求是完全正常的。 Scrapy的設計使得任何回調都可以返回一個數據項目或請求列表,Scrapy將處理輸出處理每個事物的不同方式(將項目發送到要存儲的管道或任何其他事物,或者安排新的請求 - 可能的不同的配置回調)。

這是更好地在概述頁面即將推出的下一個Scrapy版本的解釋,你可以隨時查看的位置:http://scrapy.readthedocs.org/en/master/intro/overview.html

注意,示例代碼使用尚未發佈的功能(收益類型的字典,response.urljoin方法),但解釋是有效的。