gpt4 book ai didi

python - Scrapy:将来自不同链接的抓取数据关联到 1 个项目/模型

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

假设我有 3 个链接 ABC:

AB 是指向网页的链接,C 是指向需要下载的文件的链接。

我的爬虫目前是这样做的:

  1. 从页面A:提取元数据,提取链接到页面B
  2. 从页面B:提取下载链接C
  3. 来自C:下载/保存文件

注意 1:我使用了 3 个不同的 Rule s 提取A链接,B链接和C链接

问题问题是,我不知道如何将项目(来自页面 A 的元数据)与从链接 C 下载的文件相关联。

当前在 A 链接的 Rule 的解析回调方法中创建一个项目,并在 C< 的回调方法中保存文件链接

一个项目和/或一个模型(我使用 SQLALchemy 在数据库中存储,使用管道)需要包含元数据 + 下载文件的名称。

有没有人知道如何将元数据与下载文件的名称相关联?

注意 2:我使用规则系统,因为它可以很容易地用新规则扩展,并且这些规则可以在其他蜘蛛中重用。

最佳答案

我认为这种方法是近似的:

def parse(self, response):
sel = Selector(response)

if response.url = 'link_to_A':
i = new Item()
i['meta_1'] = sel.xpath('//selector')
i['meta_2'] = sel.xpath('//selector')

link_to_B = sel.xpath('//selector')

yield Request(url=link_to_B, meta={'item': i})

elif response.url = 'link_to_B':
i = response.request.meta['item']
i['link_file'] = sel.xpath('//selector')

return i

关于python - Scrapy:将来自不同链接的抓取数据关联到 1 个项目/模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23827862/

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