亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

處理 Scrapy 中的所有 yield 項

處理 Scrapy 中的所有 yield 項

慕萊塢森 2023-05-09 15:34:58
目前我有一個 Scrapy Spider 在 parse 方法上產生各種項目。有沒有什么辦法可以得到所有已經被 yield 的項,而不管 parse 方法被調用了多少次?
查看完整描述

3 回答

?
皈依舞

TA貢獻1851條經驗 獲得超3個贊

使用管道,您將能夠將所有項目累積到類似結構的數組中(process_item在您的管道中):

self.items.append(item) # I use self.items class variable defined at your pipeline

并在spider_closed.


查看完整回答
反對 回復 2023-05-09
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

通常有兩種方法可以做到這一點。

首先,您可以使用命令將輸出簡單地保存在 JSON 文件中scrapy crawl my_spider -o my_data.json。其次,您可以編寫一個管道并將輸出存儲在任何數據庫中以形成您想要的結構。


查看完整回答
反對 回復 2023-05-09
?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

我不確定您所說的獲取物品是什么意思。如果你想將它們導出到一個文件中,你可以使用feed export,通過像這樣執行蜘蛛:

scrapy?crawl?my_spider?-o?my_data.csv

它支持其他擴展,檢查那些鏈接。

從你的標題看來你想要處理產生的項目,在這種情況下你需要一個ItemPipeline。從文檔:

在一個項目被蜘蛛抓取后,它被發送到項目管道,它通過幾個順序執行的組件來處理它。

...

項目管道的典型用途是:

  • 清理 HTML 數據

  • 驗證抓取的數據(檢查項目是否包含某些字段)

  • 檢查重復項(并刪除它們)

  • 將抓取的項目存儲在數據庫中

parse這兩種方法的運行都與方法被調用的次數無關。


查看完整回答
反對 回復 2023-05-09
  • 3 回答
  • 0 關注
  • 213 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號