Scrapy - 仅针对指定的 URL

Scrapy - target specified URLs only

我正在使用 Scrapy 浏览和收集数据,但发现蜘蛛正在抓取大量不需要的页面。我希望蜘蛛程序做的只是从一组定义的页面开始,然后解析这些页面上的内容,然后完成。我已尝试实施如下规则,但它仍在抓取一系列其他页面。关于如何解决这个问题有什么建议吗?

rules = (
    Rule(SgmlLinkExtractor(), callback='parse_adlinks', follow=False),  
)

谢谢!

您的提取器正在提取每个 link,因为它没有设置任何规则参数。

如果您看一下 official documentation,您会发现 scrapy LinkExtractors 有很多参数,您可以设置这些参数来自定义 linkextractor 提取的内容。

示例:

rules = (
    # only specific domain links
    Rule(LxmlLinkExtractor(allow_domains=['scrapy.org', 'blog.scrapy.org']), <..>),  
    # only links that match specific regex
    Rule(LxmlLinkExtractor(allow='.+?/page\d+.html)', <..>),  
    # don't crawl speicific file extensions
    Rule(LxmlLinkExtractor(deny_extensions=['.pdf','.html'], <..>),  
)

如果您不希望蜘蛛在某处好奇,您还可以为您的蜘蛛设置允许的域:

class MySpider(scrapy.Spider):
    allowed_domains = ['scrapy.org']
    # will only crawl pages from this domain ^