Skip to Content
R在数据科学中的应用,第2版
book

R在数据科学中的应用,第2版

by Hadley Wickham, Mine Cetinkaya-Rundel, Garrett Grolemund
May 2025
Intermediate to advanced
578 pages
8h 9m
Chinese
O'Reilly Media, Inc.
Content preview from R在数据科学中的应用,第2版

第 24 章 网络抓取

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

导言

本章将向您介绍使用rvest 进行网页抓取的基础知识。网页抓取是从网页中提取数据的有用工具。有些网站会提供 API,即一组以 JSON 格式返回数据的结构化 HTTP 请求,您可以使用第 23 章中的技术来处理这些请求。在可能的情况下,你应该使用 API、1因为它通常能提供更可靠的数据。但遗憾的是,使用 Web API 编程超出了本书的范围。相反,我们要教授的是刮擦技术,这是一种无论网站是否提供 API 都可以使用的技术。

在本章中,我们将首先讨论刮擦的道德和法律问题,然后再深入学习 HTML 的基础知识。然后,您将学习到 CSS 选择器的基础知识,以便定位页面上的特定元素,以及如何使用 rvest 函数从 HTML 中获取文本和属性数据并将其导入 R。

先决条件

rvest 是 tidyverse 的成员,但不是核心成员,因此需要显式加载。我们还将加载完整的 tidyverse,因为我们会发现它在处理我们刮擦的数据时非常有用。

library(tidyverse)
library(rvest)

搜索道德与法律

在开始讨论执行网络搜刮所需的代码之前,我们需要谈谈这样做是否合法和合乎道德。总的来说,这两方面的情况都很复杂。

法律问题在很大程度上取决于你居住的地方。不过,作为一般原则,如果数据是公开的、非个人的和事实性的,你就可能没有问题。2这三个因素很重要,因为它们与网站的条款和条件、个人身份信息和版权有关,我们将对此进行讨论。

如果数据不是公开的、非个人的或事实性的,或者如果你是专门为了用这些数据来赚钱而进行数据搜刮,你就需要和律师谈谈。无论如何,你都应该尊重托管你所搜刮网页的服务器资源。最重要的是,这意味着如果你要抓取许多网页,你应该确保在每次请求之间稍作等待。一个简单的方法就是使用 Dmytro Perepolkin 的礼貌软件包。它会在每次请求之间自动暂停并缓存结果,这样你就不会重复请求同一个页面了。

服务条款

如果你仔细观察,就会发现许多网站在页面的某个地方都有一个 "条款和条件 "或 "服务条款 "链接,如果你仔细阅读该页面,往往会发现网站明确禁止网络搜刮。这些页面往往是公司提出非常宽泛主张的法律 "领地"。在可能的情况下,尊重这些服务条款是礼貌的做法,但要谨慎对待任何声明。

美国法院通常认为,仅仅将服务条款放在网站页脚并不足以让你受其约束,例如,HiQ Labs 诉 LinkedIn 案。一般来说,要受服务条款的约束,你必须采取一些明确的行动,如创建一个账户或勾选一个框。这就是为什么数据是否公开很重要;如果你不需要账户就能访问这些数据,你就不太可能受服务条款的约束。但要注意的是,欧洲的情况有所不同,欧洲法院认为,即使你没有明确表示同意,服务条款也是可以执行的。

个人身份信息

即使数据是公开的,您也应该非常小心地收集个人身份信息,如姓名、电子邮件地址、电话号码、出生日期等。欧洲对此类数据的收集和存储有特别严格的法律规定(GDPR),无论你住在哪里,都有可能陷入道德泥潭。例如,2016 年,一群研究人员在交友网站 OkCupid 上搜集了 7 万人的公开个人资料信息(如用户名、年龄、性别、所在地等),并在未做任何匿名化处理的情况下公开发布了这些数据。虽然研究人员认为这样做没什么不对,因为数据已经公开,但由于数据集中公开的用户信息存在可识别性方面的道德问题,这项工作受到了广泛的谴责。如果您的工作涉及到收集个人身份信息,我们强烈建议您阅读有关 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

R深度学习权威指南

R深度学习权威指南

Posts & Telecom Press, Joshua F. Wiley
AI工程

AI工程

Chip Huyen
Raku学习手册

Raku学习手册

brian d foy

Publisher Resources

ISBN: 9798341657304