我从一个简单的请求开始,当我收到回调时,pre_results
在这种情况下,我想将x
多个 POST 请求发送到一个表单以获取所有可能的信息。当我发送请求时,它每次都发送相同的请求。
我知道url是正确的,value
s是正确的。看起来 for 循环以某种方式破坏了请求。FormRequest
是不是可以从自定义 parse 方法中发送多个s scrapy
?我尝试过最多 10 秒的延迟,但仍然没有运气。
def pre_results(self, response):
hxs = HtmlXPathSelector(response)
log.msg("Refining results with number %d and url %s" % (response.meta['item']['number'], response.url), log.INFO)
minurl = response.url.replace("results", "refine_results")
requests = []
for value in hxs.select('//select[@id="profile_electricity_plan_type"]/option/@value').extract():
request = FormRequest(url=minurl,
formdata={'profile[electricity_plan_type]' : value}, #This value is correct
callback=self.step_results,
dont_filter=True) # To be able to send to the same URL
request.meta['item'] = response.meta['item']
request.meta['item']['company'] = value
yield request
如果有人有一些意见,我将不胜感激。谢谢
编辑:它发出 X 请求,其值相同,是它迭代的最后一个值。至少当它击中时self.step_results
,一切都是一样的。