Scrapy中的分页规则

时间:2015-08-31 10:53:53

标签: python web-scraping scrapy scrape scrapy-spider

我正在使用Scrapy从website中提取信息。这是蜘蛛代码(部分):

class bsSpider(CrawlSpider):
    name = "bsSpider"
    def __init__(self, *args, **kwargs): 
        super(bsSpider, self).__init__(*args, **kwargs) 
        self.start_urls = [kwargs.get('start_url')]

    rules = (Rule (LinkExtractor(allow=('.*\?id1=.*',),restrict_xpaths=('//a[@class="prevNext next"]',)), callback="parse_items", follow= True),)

根据上述规则,请按照下一页进行操作。现在,如果用户想要提供另一个start_url来抓取,如何动态更新上述规则?任何形式的帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

查看CrawlSpider的{​​{3}}:

class CrawlSpider(Spider):

    rules = ()

    def __init__(self, *a, **kw):
        super(CrawlSpider, self).__init__(*a, **kw)
        self._compile_rules()

如您所见,如果您在某处更改self.rules,则需要手动调用self._compile_rules()以重新编译规则。