我目前正在使用 scrapy 的 CrawlSpider 在多个 start_urls 列表中查找特定信息。一旦我找到了我要查找的信息,我想做的是停止抓取特定 start_url 的域,这样它就不会一直打到域,而只会打到其他 start_url。
有没有办法做到这一点?我试过像这样附加到deny_domains:
deniedDomains = []
...
rules = [Rule(SgmlLinkExtractor(..., deny_domains=(etc), ...)]
...
def parseURL(self, response):
...
self.deniedDomains.append(specificDomain)
附加似乎并没有停止爬行,但如果我用预期的 specificDomain 启动蜘蛛,那么它会按要求停止。所以我假设你不能在蜘蛛启动后更改 deny_domains 列表?