gpt4 book ai didi

python - 使用 Scrapy 时如何将多个项目插入数据库?

转载 作者:行者123 更新时间:2023-12-05 03:48:43 27 4
gpt4 key购买 nike

现在大多数数据库都支持一次插入多条记录到数据库中。这比一条一条地插入记录要快得多,因为只需要一个事务。 SQL 语法类似于:

INSERT INTO tbl_name (a,b,c)
VALUES(1,2,3), (4,5,6), (7,8,9);

现在我正在一个小项目上使用 Python Scrapy。我使用它的项目管道将抓取的数据存储到数据库中。但是,项目管道背后的逻辑是将在每个项目上调用相关方法。所以它总是一次插入一个项目。我怎样才能一次收集大约 100 个项目并将它们插入?

最佳答案

您需要将管道重构为如下所示:

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

关于python - 使用 Scrapy 时如何将多个项目插入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64285317/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com