1

私は単純なリクエストから始めています。コールバックを取得したら、この場合、フォームに多数の POST リクエストをpre_results送信して、可能なすべての情報を取得したいと考えています。xリクエストを送信すると、毎回同じリクエストが送信されます。

URL が正しいこと、values が正しいことはわかっています。for ループが何らかの形でリクエストを破損しているようです。FormRequestのカスタム parse メソッドから複数の を送信することはできません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

誰かが何らかの意見を持っていれば、私はそれを大いに感謝します. ありがとう

EDIT : 反復している値の最後の値と同じ値を持つ X リクエストを送信します。少なくともヒットself.step_resultsしたときはすべて同じです。

4

0 に答える 0