我有一个scrapy项目,它抓取给定网站的所有内部链接。这工作正常,但是我们发现了一些我们希望将抓取限制到网站特定部分的情况。
例如,如果您可以想象银行有一个特殊的部分来提供投资者信息,例如http://www.bank.com/investors/
因此,在上面的示例中,http://www.bank.com/investors/中的所有内容都只会被抓取。例如,http://www.bank.com/investors/something/,http://www.bank.com/investors/hello.html,http://www.bank.com/investors/something/something/index.php
我知道我可以在parse_url上编写一些hacky代码来扫描URL,如果它不符合我的要求(即它不是/投资者/)就会通过,但这看起来很糟糕。< / p>
有一个很好的方法吗?
谢谢。
答案 0 :(得分:0)
我想出来了。
您需要为要允许的模式添加allow()。
例如:
Rule(LinkExtractor(allow=(self.this_folder_only)), callback="parse_url", follow=True)
其他一切都将被拒绝。