返回介绍

11.1 CrawlSpider 类简介

发布于 2025-04-21 19:15:29 字数 1567 浏览 0 评论 0 收藏

使用 Crawlspider 模板爬取新浪新闻

CrawlSpider 类是爬取一般网站最常用的 Spider 类。CrawlSpider 允许用户根据一定的 URL 规则提取跟进的链接,这是因为一般网站设计其 URL 构造都符合一定的规则,CrawlSpider 正是利用这种 URL 构造规则跟进链接,实现对全网站的爬取。

CrawlSpider 类除了从 Spider 类继承过来的属性外,其提供了新的属性。

1. rules

rules 是规则对象的集合,集合中的每条 Rule 对爬取网站的动作定义了特定表现,也就是说爬取规则就是在 rules 里面定义,如果多个 Rule 匹配了相同的链接,则根据它们在本属性中被定义的顺序,第一个会被使用。rules 最重要的参数是爬取规则 link_extractor,还有几个重要参数需要注意。

(1)callback 回调函数

这是一个可迭代对象或 string,若是 string,则 Spider 中同名的函数将会被调用。从 link_extractor 中获取到链接时,系统将调用该函数。该回调函数接受一个 response 作为其第一个参数,并返回一个包含 Item 及(或)Request 对象的列表。

需要注意的是,当使用 CrawlSpider 编写爬虫规则时,要避免使用 parse 作为回调函数。这是由于 CrawlSpider 使用了 parse 方法来实现其逻辑,如果覆盖了 parse 方法,CrawlSpider 将会运行失败。

(2)follow

follow 是一个布尔值,指定了根据该规则从 response 提取的链接是否需要跟进。

如果不指定回调函数,也就是 callback 为 None,follow 默认设置为 True,否则默认为 False。

(3)process_links

用来过滤从 link_extractor 中获取到的链接的函数。

(4)process_request

处理提取到的每个 request 的函数,主要用来过滤 request。

下面重点说一下爬取规则 link_extractor。

2. 爬取规则

link_extractor 也被称为链接提取器,人们使用它来定义具体的爬取规则,即如何从爬取到的页面提取链接。link_extractor 是链接提取器与方便的过滤选项,常用参数如下。

(1)allow:值为正则表达式或正则表达式列表,当 URL 匹配这个正则时提取。如果没有指定 allow 的值或者值为空,它将匹配所有链接。

(2)deny:值为正则表达式或正则表达式列表,当 URL 匹配这个正则时不提取此链接。它优先于 allow 参数。如果没有给出或为空,它不会排除任何链接。

(3)allow_domains 和 deny_domains:允许爬取和不爬取的域名。

(4)unique:是一个布尔值,对提取的链接应用或不应用重复过滤。

上面简单介绍了 CrawlSpider 的概念和常用参数。下节通过爬取房天下二手房房源的例子来具体演示如何使用 CrawlSpider。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。