Scrapy 我可以从响应中提取请求表单数据吗?
我正在使用scrapy刮取一些数据,我想知道请求-响应存储了多少数据 我的具体问题如下代码所示:Scrapy 我可以从响应中提取请求表单数据吗?,scrapy,scrapy-spider,Scrapy,Scrapy Spider,我正在使用scrapy刮取一些数据,我想知道请求-响应存储了多少数据 我的具体问题如下代码所示: def parse(self,response): r = FormRequest(url=url1, formdata={somedata}, callback=parse2) #is this line necessary if I want the formdata being attached? r.meta['formdata'] = formdata
def parse(self,response):
r = FormRequest(url=url1, formdata={somedata}, callback=parse2)
#is this line necessary if I want the formdata being attached?
r.meta['formdata'] = formdata
yield r
def parse2(self,response):
#can I access to the formdata here without that line of code?
如果您有任何建议,我们将不胜感激。是的,但是
formdata
已经被转换成body
,据我所知,它不是字典,而是字符串
因此,请尝试r.body
快速提醒您可以通过以下方式检查对象的属性:
dir(r)
非常感谢!!没错,我可以在response.request.body中找到类似“key1=v1&key2=v2”的字符串形式的formdata。但是,我需要这两个特性作为后面请求的formdata,您知道我如何使用它而不提取字符串(拆分并放入新的dict)或使用request.meta吗?您可以在创建FormRequest
对象时,将formdata
放入request.meta
,即FormRequest(url,formdata=fd,callback=parse2,meta={'formdata':fd}
然后您可以通过response.meta['formdata']
在parse2
中访问它