第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

使用Scrapy時如何將多個項目插入數(shù)據(jù)庫?

使用Scrapy時如何將多個項目插入數(shù)據(jù)庫?

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

1 回答

?
POPMUISE

TA貢獻(xiàn)1765條經(jīng)驗 獲得超5個贊

您需要將管道重構(gòu)為如下所示:


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


查看完整回答
反對 回復(fù) 2023-10-26
  • 1 回答
  • 0 關(guān)注
  • 192 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號