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