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

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

使用Scrapy時如何將多個項目插入數據庫?

使用Scrapy時如何將多個項目插入數據庫?

PIPIONE 2023-10-26 14:28:24
現在大多數數據庫都支持一次將多條記錄插入數據庫。這比一條一條插入記錄要快得多,因為只需要一筆事務。SQL 語法與此類似:INSERT INTO tbl_name (a,b,c) VALUES(1,2,3), (4,5,6), (7,8,9);現在我正在一個小項目上使用Python Scrapy。我使用其項目管道將抓取的數據存儲到數據庫中。然而,項目管道背后的邏輯是,將在每個項目上調用相關方法。所以它總是一次插入一個項目。我怎樣才能收集大約 100 個項目并在一次運行中插入它們?
查看完整描述

1 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

您需要將管道重構為如下所示:


class DatabasePipeline(object):


    def open_spider(self, spider):

        #Create database connection

        ...

        #create items list

        self.items = []


    def process_item(self,item,spider):

        self.items.append(item)

        if len(self.items)==100:

            #constuct SQL query to insert multiple records

            ...

            #execute query and clean self.items

            self.items = []

        return item


    def close_spider(self,spider):

        #insert remaining records

        if self.items:

            #constuct SQL query to insert multiple records

            ...

            #execute query

        #close database connection


查看完整回答
反對 回復 2023-10-26
  • 1 回答
  • 0 關注
  • 208 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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