如何在scrapy框架python中的start_urls列表中构建url

时间:2016-09-26 18:17:23

标签: python regex scrapy

我是scrapy和python的新手 就我而言:

页面A:

http://www.example.com/search?keyword=city&style=1&page=1  
http://www.example.com/search?keyword=city&style=1&page=2  
http://www.example.com/search?keyword=city&style=1&page=3 

规则是:

    `for i in range(50):
        "http://www.example.com/search?keyword=city&style=1&page=%s" % i`

Page B:

http://www.example.com/city_detail_0001.html  
http://www.example.com/city_detail_0100.html  
http://www.example.com/city_detail_0053.html  

没有规则,因为页面B与搜索关键字匹配。

所以,这意味着,如果我想从页面B中获取一些信息,
首先,我必须使用页面A筛选页面B的链接 在过去,我通常是两步:
1.我创建scrapy A,并在txt文件中抓取Page B的链接 2.在scrapy B中,我将txt文件读到" start_urls"

现在,请你指导我,我怎样才能构建" start_urls"在一只蜘蛛?

1 个答案:

答案 0 :(得分:2)

start_requests方法就是您所需要的。之后,继续传递请求并在回调方法上解析响应主体。

class MySpider(Spider):
    name = 'example'

    def start_requests(self):
        for i in range(50):
            yield Request('myurl%s' % i, callback=self.parse)

    def parse(self, response):
        # get my information for page B
        yield Request('pageB', callback=self.parse_my_item)

    def parse_my_item(self, response):
        item = {}
        # real parsing method for my items    
        yield item