1 回答

TA貢獻1911條經驗 獲得超7個贊
最后,我找到了一種獲得所需行為的方法。這個想法是進行一種遞歸,最后一步將返回整個結果。為了迭代遞歸,我們使用元屬性共享列表。
result = list()
def after_auth_success(self, response):
first_prod = prod_list.pop(0)
basic_url = build_url("basic_info_url", first_prod)
yield FormRequest(basic_url, meta = {'prod_list': prod_list}, calback = self.on_basic_info)
def on_basic_info(self, response):
yield FormRequest("get_price_url", meta = {'prod_list':response.meta['prod_list']}, calback = self.on_price_info)
def on_price_info(self, response):
#Scrape result and add the result into a dict called node
result.append(result_node)
prod_list = response.meta['prod_list']
if prod_list:
first_prod = prod_list.pop(0)
basic_url = build_url("basic_info_url", first_prod)
yield FormRequest(basic_url, meta = {'prod_list': prod_list}, calback = self.on_basic_info)
else:
yield {'data': result}
添加回答
舉報