gpt4 book ai didi

python - scrapy - 如何将分层项目插入数据库?

转载 作者:太空宇宙 更新时间:2023-11-04 03:50:37 26 4
gpt4 key购买 nike

我问的是 scrapy框架。

我正在抓取一个商业页面。首先,我添加带有公司名称的品牌项目(我有品牌表),然后我想添加几个业务位置(BusinessLocations 表),但我需要数据库 BrandId 才能将业务位置插入数据库。然后我为每个业务位置添加了一些关于部门的记录,我再次需要数据库 BusinessLocationId 来插入每个部门。

假设我将项目插入管道中的数据库。

我可以简单地假设之前处理的项目已经离开管道并在数据库中吗?在这种情况下,我可以简单地使用通过元数据传递的一些文本唯一字段从数据库中选择所需的 ID。

但是我认为可能存在竞争条件,因为 scrapy 同时处理多个请求。竞争条件是指在将适当的品牌插入数据库之前添加 BusinessLocation 项目。 是否存在这种竞争条件的风险?

最佳答案

Can I simply assume that items processed earlier already left pipeline and are in database?

一般不会。

它高度重视您在管道中所做的事情。例如,如果您使用图像管道,那么带有图像的项目将由图像管道保留,直到检索到所有图像,同时没有图像或图像很少的项目将在上一个项目之前传递到下一个管道。

您可以收集主项目对象中的子项目,将项目传递给子请求,但是您将不得不关心是否处理错误以免丢失不完整的项目。另一种方法是将项目存储在暂存数据库中,然后合并查找孤立记录。

关于python - scrapy - 如何将分层项目插入数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21452524/

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