Scrapy 的 CrawlSpider 是一个通用的爬虫类,专门用于爬取整个网站。与普通的 Spider 不同,CrawlSpider 提供了规则系统,可以自动跟踪链接并提取数据。CrawlSpider 使用 LinkExtractor 来提取页面中的链接,并使用 Rule 来定义如何处理这些链接。Rule 可以指定回调函数、是否跟踪链接、链接提取器等。CrawlSpider 特别适合爬取结构化网站,如新闻网站、电商网站等。使用 CrawlSpider 可以减少编写重复代码的工作量,提高开发效率。需要注意的是,CrawlSpider 的 parse 方法已经被规则系统使用,开发者不应该覆盖它,而应该定义其他的回调函数。CrawlSpider 还支持深度控制、域名限制等功能,可以精确控制爬取范围。