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