要求苛刻的问题

时间:2019-05-12 18:37:59

标签: python recursion request scrapy

我正在尝试抓取5个下拉列表(作为树的深度)的输出的所有可能组合,并从中构造出通用的树数据结构。

我在下拉选项的for选项中包含请求,并且Spider仅将每个for循环迭代一次。

def parse(self, response):
    lastPos = response.meta['lastPos']
    ending = False
    for dropDown in reversed(response.css('select')):
        if ending == True:
            break
        dropId = dropDown.css('::attr(id)').get()
        options = dropDown.css('option::text').getall()
        for option in options:
            if option != self.root:
                self.dropDict[dropId] = option
                    request = scrapy.FormRequest(url=response.url, formdata=self.dropDict, callback=self.parse)
                    request.meta['lastPos'] = option
                    return request

蜘蛛需要迭代16个可能的序列,但是仅能获得第一个序列的im总是选择第一个下拉选项。我无法发送蜘蛛的仓库是有帮助的

1 个答案:

答案 0 :(得分:2)

使用yield request代替retutn request