我正在使用以下代码(简化):
def parse(self, response):
print('hello')
for x in xrange(8):
print x
random_form_page = session.query(....
PR = Request(
'htp://my-api',
headers=self.headers,
meta={'newrequest': Request(random_form_page, headers=self.headers)},
callback=self.parse_PR
)
yield PR
我想遍历db表并获取每个scrape(random_form_page)的起始页面,然后为每个起始页面生成一个请求。在我的代码中,我可以看到虽然它循环了8次,但它只产生对第一个起始页面的请求。我做错了什么?
答案 0 :(得分:2)
您应该使用start_requests()
method代替parse()
:
def start_requests(self):
for x in xrange(8):
random_form_page = session.query(....
PR = Request(
'htp://my-api',
headers=self.headers,
meta={'newrequest': Request(random_form_page, headers=self.headers)},
callback=self.parse_PR
)
yield PR
如果已设置,您还应省略start_urls
。