[英]Loop on scrapy FormRequest but only one item created
因此,我试图循环调用一个formrequest,该函数调用创建,填充和产生项的函数,只有pb:无论他循环了多少次,都只完成了一个项,并且只有一项完成了,我不知道为什么?
def access_data(self, res):
#receive all ID and request the infos
res_json = (res.body).decode("utf-8")
res_json = json.loads(res_json)
for a in res_json['data']:
logging.warning(a['id'])
req = FormRequest(
url='https://my_url',
cookies={my_cookies},
method='POST',
callback=self.fill_details,
formdata={'valeur': str(a['id'])},
headers={'X-Requested-With': 'XMLHttpRequest'}
)
yield req
def fill_details(self, res):
logging.warning("annonce")
item = MyItem()
item['html'] = res.xpath('//body//text()')
item['existe'] = True
item['ip_proxy'] = None
item['launch_time'] = str(mySpider.init_time)
yield item
为了确保一切都清楚:当我运行此命令时,日志“ annonce”仅打印一次,而我的请求循环中的日志a ['id']被打印很多,而我找不到解决此问题的方法
我找到了路! 如果任何一个都具有相同的pb:,因为我的网址始终是相同的(仅更改formdata),则scrapy过滤器将控制该控件并销毁重复项。 在formrequest中将dont_filter激活为true以使其起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.