Scrapy 如何在parse_项调用之间传递一些信息?

Scrapy 如何在parse_项调用之间传递一些信息?,scrapy,Scrapy,好的,想象一下一个有一些列表的网站。此列表中的项目需要一条信息。第二个部分位于另一个url上,每个项目都是唯一的 目前,我们的爬虫程序打开一个列表页面,抓取每个项目,并为每个项目打开第二个URL,并从中获取第二条信息。我们使用requests-lib,这在几乎所有情况下都非常好,但现在它似乎很慢而且无效。看起来整个Twisted正在被阻止,直到一个“请求”请求结束 伪代码: def parse_item(): for item in item_list: content2

好的,想象一下一个有一些列表的网站。此列表中的项目需要一条信息。第二个部分位于另一个url上,每个项目都是唯一的

目前,我们的爬虫程序打开一个列表页面,抓取每个项目,并为每个项目打开第二个URL,并从中获取第二条信息。我们使用requests-lib,这在几乎所有情况下都非常好,但现在它似乎很慢而且无效。看起来整个Twisted正在被阻止,直到一个“请求”请求结束

伪代码:

def parse_item():
    for item in item_list:
        content2 = requests.get(item['url'])

我们不能让Scrapy解析第二个url,因为我们需要以某种方式“连接”第一个和第二个url。像Redis这样的东西可以工作,但是嘿,在Scrapy中有没有更好(更简单、更快)的方法呢?我不敢相信事情会这么复杂。

你可以用meta来传递我的变量

例如:

req = Request(url=http://somedonain.com/path, callback=myfunc)
req.meta['var1'] = 'some value'

yeld(req)
在ur myfunc中,将传递的变量读取为:

myval = response.request.meta['var1']