【问题标题】:Rule for pagination in ScrapyScrapy中的分页规则
【发布时间】:2015-08-31 10:53:53
【问题描述】:

我正在使用 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 来抓取,如何动态更新上述规则?任何形式的帮助将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    看看CrawlSpiderconstructor

    class CrawlSpider(Spider):
    
        rules = ()
    
        def __init__(self, *a, **kw):
            super(CrawlSpider, self).__init__(*a, **kw)
            self._compile_rules()
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多