使用scrapy

时间:2016-09-26 14:36:45

标签: python scrapy

我正在使用以下代码(简化):

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次,但它只产生对第一个起始页面的请求。我做错了什么?

1 个答案:

答案 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