如何将scrapy限制在网站的特定部分,例如http://www.domain.com/section/

时间:2016-11-09 11:11:09

标签: scrapy scrapy-spider

我有一个scrapy项目,它抓取给定网站的所有内部链接。这工作正常,但是我们发现了一些我们希望将抓取限制到网站特定部分的情况。

例如,如果您可以想象银行有一个特殊的部分来提供投资者信息,例如http://www.bank.com/investors/

因此,在上面的示例中,http://www.bank.com/investors/中的所有内容都只会被抓取。例如,http://www.bank.com/investors/something/http://www.bank.com/investors/hello.htmlhttp://www.bank.com/investors/something/something/index.php

我知道我可以在parse_url上编写一些hacky代码来扫描URL,如果它不符合我的要求(即它不是/投资者/)​​就会通过,但这看起来很糟糕。< / p>

有一个很好的方法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我想出来了。

您需要为要允许的模式添加allow()。

例如:

Rule(LinkExtractor(allow=(self.this_folder_only)), callback="parse_url", follow=True)

其他一切都将被拒绝。