我正在尝试抓取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总是选择第一个下拉选项。我无法发送蜘蛛的仓库是有帮助的
答案 0 :(得分:2)
使用yield request
代替retutn request
。