我想合并从站点A获取项目和从站点B获取项目的项目
A项目和B项目共享一些字段,这些字段允许我关联项目。否则,每个字段都是A或B所特有的
我想基于相关性合并这些项,创建包含
A或B所独有的项目应原封不动地通过。你知道吗
我不能假定:
我要怎么做呢?在后处理步骤中使用Scrapy或更好的方法有意义吗?你知道吗
实施思路:
因为我不能承担订单,我需要一个临时商店。我正在查看1000个项目,因此内存临时存储似乎是可行的。你知道吗
伪代码:
A_items = list() # in-memory temp storage
for A_item in A_site:
A_items.append(A_item)
for B_item in B_site:
for A_item in A_items:
if is_correlated(A_item, B_item):
AB_item = merge(A_item, B_item)
A_items.remove(A_item)
yield AB_item
else:
yield B_item # B_item without A_item
# remaining A_items, for which we did not find a B_item
for A_item in A_items:
yield A_item
把这个逻辑放在哪里?你知道吗
我不能使用项目管道,因为我需要生成多个项目 清空临时仓库。我知道一个项目管道可以 只返回零项或一项,但不能返回更多项。
我可以建立一个蜘蛛知道如何刮两个网站。我可以 把逻辑放到蜘蛛网上。
我可以建立一个自定义提取器,并将逻辑放在那里。
对于这种用例,我认为后处理是最简单、最直接和可靠的方法。如果以后需要进行任何额外的后期处理/聚合,也会使事情变得更容易。你知道吗
相关问题 更多 >
编程相关推荐