PHP前端开发

如何使用 Scrapy 在列表页和详情页中合并数据到一个 Item?

百变鹏仔 5天前 #Python
文章标签 如何使用

scrapy 如何合并列表页和详情页内容到一个 item 中

scrapy 使用 meta 传递参数,可以解决列表页和详情页内容合并到一个 item 中的问题。

在列表页解析函数中:

def parse(self, response):    # 获取列表页信息(标题、时间、url)    # 将列表页信息传递给详情页解析函数    for url in urls:        yield scrapy.request(url, meta={'list_info': list_info}, callback=self.parse_item)

在详情页解析函数中:

def parse_item(self, response):    # 获取详情页信息(内容)    # 从 meta 中获取列表页信息    list_info = response.meta['list_info']    # 合并列表页和详情页信息    item = Item()    item['title'] = list_info['title']    item['time'] = list_info['time']    item['url'] = list_info['url']    item['content'] = content    yield item