返回博客
指南
Suciu DanLast updated on Mar 31, 20261 min read

使用 R 进行网页抓取:分步终极指南

使用 R 进行网页抓取:分步终极指南

网络爬虫是一种广受欢迎的技术,专业人士常利用它从各种网页中提取数据。当您浏览互联网时,许多网站不允许用户保存数据供私人使用。因此,人们只能手动复制粘贴数据,整个过程既耗时又繁琐。

此时,网络爬虫便派上了用场。它能自动从网页中提取数据,但整个过程是通过网络爬虫软件/工具(即“网络爬虫”)来完成的。该软件会根据用户的需求,自动从网页中提取并加载数据。

网络爬虫既可以针对单个项目进行定制开发,也可以轻松配置以适配任何网页。虽然网络爬取工作可通过多种工具或软件完成,但市面上有无数编程语言被公认为能极大支持这一过程。

“R”便是其中一种,它被誉为网页抓取领域的领先编程语言之一。那么,您是否想使用R进行网页抓取?请阅读本文了解具体方法。

R 编程语言:简要定义

R 编程语言:简要定义

  图片来源:

在深入探讨R语言中的网页抓取核心内容之前,了解一些R编程基础知识至关重要。R是一种广为人知的开源编程语言,能够轻松高效地抓取数据。它于1993年首次面世,并于1995年转型为开源平台。

“R”于2000年发布了首个测试版,由罗伯特·詹特曼(Robert Gentleman)和罗斯·伊哈卡(Ross Ihaka)设计。R语言的主要目的是将所有想法忠实且快速地转化为软件。作为最广泛使用的编程语言之一,“R”在所有数据科学家中广为人知,这款数据抓取工具的一些知名应用场景包括:

  • 机器学习
  • 银行业
  • 电子商务
  • 金融
  • 以及其他利用海量数据的各类领域。

与SPSS和SAS相比,R被视为一种广泛使用的分析工具。其用户支持和活跃社区规模约为200万。当您查看其他企业如何利用R进行数据抓取时,会发现以下案例:

  • Trulia - 预测所有房价及当地犯罪率
  • Facebook - 更新状态及社交网络图谱
  • Foursquare - 用于推荐引擎
  • Google - 预测经济活动并提升在线广告效率

尽管如此,与其他编程语言相比,R 目前主要与 Python 形成竞争态势。这是因为两者均拥有活跃的社区并提供网络爬虫工具。但若观察目标受众,差异便显而易见:Python 兼具易于学习的语法和一流的功能特性。

尽管初次使用 R 进行网页抓取可能令人望而生畏,但该语言始终专注于统计分析。它还提供了一套庞大的内置数据可视化和数据分析工具,这使得网页抓取工作变得轻松许多,因为这类项目往往需要海量数据。

R语言中的网页抓取:您应牢记的重要事项

R语言中的网页抓取:您应牢记的重要事项

当您决定使用 R 进行网页抓取时,有几点需要您充分理解。

  • 掌握网页抓取与HTML基础

若要使用 R 进行网页抓取,首先必须学习并掌握网页抓取和 HTML 的基础知识。你需要学会如何通过浏览器访问 HTML 代码,并了解 HTML 及标记语言的所有底层概念。这无疑将为数据抓取奠定基础。

一旦掌握了这些基础知识,使用R进行数据抓取将比您想象的要容易得多。以下内容将有助于您使用R进行网页抓取工作。

  • HTML基础

自 80 年代末由蒂姆·伯纳斯-李首次提出以来,通过 HTML 相互连接的文档平台(即万维网)构成了每个网页乃至整个网络的基础。当你在浏览器中输入一个网站地址时,浏览器会下载并渲染该页面。

但具体该如何使用 R 进行网页抓取呢?在开始操作之前,你首先需要了解网页的具体结构及其组成要素。你会发现,虽然网页上呈现着精美的图片和色彩,但底层的 HTML 文档本质上却是以文本形式存在的。

HTML文档是网页的技术性表现形式,它告诉浏览器应显示哪些HTML元素以及具体如何显示。若想成功从网页中提取数据,你必须对HTML文档进行分析和理解。

  • HTML 标签与元素

查看 HTML 代码时,你会看到诸如 <title>、</title>、<body>、</body> 等内容。这些被称为 HTML 标签,是 HTML 文档中的特殊标记。所有标签都发挥着重要作用,且每个标签都会被网页浏览器以不同的方式进行解析。

例如,"<title>"向浏览器提供网页的标题,而<body>则向浏览器提供网页的主要内容。此外,标签通常由开始和结束标记组成,其间包含内容,或者某些标签可以自行闭合。但具体采用哪种形式,很大程度上取决于具体应用场景和标签类型。

此外,标签还带有属性,这些属性提供了额外的HTML数据和信息,与所属的HTML标签相关。一旦您掌握了HTML文件的核心概念、HTML表格、文档树、标签以及特定HTML元素的正确知识,您感兴趣的所有部分都会变得更加清晰易懂。

那么,这里的核心要点是什么?简而言之,HTML页面被视为一种结构化格式,并配有标签层次结构,爬虫将在网页抓取项目中利用这一结构来提取所有所需信息。

  • 使用 R 语言解析网页

现在,是时候使用 R 对目标网页进行网络爬取了。请记住一点:你只会抓取 HTML 内容的表层,因此这里不会提取数据框,而是直接输出完整的 HTML 代码。

因此,若想抓取网页的所有元素并查看其呈现效果,需使用 redLines() 函数在开发环境中绘制 HTML 内容的所有行,从而生成其可视化表示。

现在,你需要输出“flat_html”,R 控制台将显示你需要的结果,大致如下所示:

图片来源:

请务必牢记一点:网页抓取仅为娱乐之用,每位数据科学专家都深知这一点。这无疑会是一次激动人心的实验,你可以在自己的操作系统上轻松抓取多个网页页面,例如IMDB网站。

“无论您是抓取网页的首页还是其中任意一页,只要操作正确,都会取得成功。尽管抓取 HTML 文件可能会产生海量输出,但这并非真正的 HTML 文档。这是因为 redLines() 虽然正确读取了文档,却未考虑文档的结构。

但这仅仅是一个示例,旨在向您展示通过 R 网页抓取方法抓取网页浏览器数据的具体过程。实际应用中的代码会复杂得多。不过,目前有一系列可用的库,它们将极大简化 R 网页抓取工作。

了解 CSS

了解 CSS

正如 HTML 提供了网页的 URL 结构和内容,CSS 选择器则提供了网页样式设置的相关信息。如果没有 CSS 选择器,网页看起来会相当单调。在样式设置方面,它涉及多种元素,而非单一元素。

样式可以指向 HTML 元素的颜色或其位置。与 HTML 一样,CSS 选择器的范围非常广泛,无法在本文中涵盖该语言的所有概念。但在开始使用 R 进行网页抓取之前,您应该更多地了解 ID 和类。在本节中,让我们来学习类。

当你在集成开发环境中创建网站时,通常希望确保所有相似的网站组件外观一致。例如,列表中的项目应统一采用红色。

因此,要实现这一效果,你需要在文本 HTML 标签的所有行中插入包含颜色信息的 CSS 选择器。具体操作如下:

<p style= "color:red" >文本 1</p>

<p style="color:red">文本 2</p>

<p style="color:red">文本 3</p>

在此示例中,样式文本表明你正试图将 CSS 选择器应用于 <P> 标签。引号内的“color:red”是键值对。其中“color”指代 <p> 标签内的文本颜色,“red”则明确指定了具体色调。

RVest 库

RVest 库

   图片来源:

与 CSS 选择器类似,您还需要深入了解 rvest 包,这是网络爬虫工作中一个重要的 R 包。 由知名学者 Hadley Wickham 维护的 rvest 库,是一个能让所有用户通过网页采集或抓取数据集的专用库。rvest 库属于 tidyverse 生态,可与该套件中的所有其他库完美配合使用。据称,rvest 包的设计灵感源自 Python 的网页抓取库 Beautiful Soup。

使用 网络爬虫API 软件:它究竟能带来什么帮助?

使用网络爬虫API软件:它究竟能带来什么帮助?

您深知,要获取存储在不同网站上的数据,必须使用合适的网络爬虫工具。它不仅有助于后续分析,还能极大加快网络爬取工作的进度。说到网络爬虫工具,Web Scraping API 目前是市场上最优秀的工具之一。

该软件提供付费版和免费版,可在包括谷歌浏览器在内的多种浏览器上完美运行。无论是“使用 R 从维基百科抓取数据”还是“使用 R 通过 FTP 下载文件”等常见网络爬取场景,您都可以使用这款软件。

目前已有超过10,000家企业使用WebScrapingAPI,每月抓取数据量超过5,000万条。该软件采用尖端技术设计,确保目标页面在几秒内加载完毕,并为您提供即时API响应。

您还可以进行情感分析和JavaScript渲染,且该软件配备了反机器人检测功能。此外,该软件还具备代理轮换功能,能够管理所有代理并自动进行轮换。

优点: 

  • 简单易用
  • 注册流程简便
  • 内置亚马逊爬虫API
  • 企业可利用该工具进行价格比较、财务数据采集、潜在客户开发等操作。

缺点:

  • 这是一项付费工具

使用 网络爬虫API 抓取网站

使用网络爬虫API抓取网站

互联网上充斥着大量数据集,人们可以将其用于个人项目。在某些情况下,人们可以轻松访问API,然后通过R语言获取数据。但这可能仅在某些时候可行,且您无法获得格式规范的数据。此时,网页抓取技术便派上了用场。

该技术通过解析网站HTML代码,帮助您获取想要分析的数据。但要进行抓取工作,您需要借助专业的工具(如Web Scraping API)来完成。这是一款高效的软件,已被众多企业采用,能使网页抓取速度提升3倍。

它拥有卓越的客户支持体系,其定价方案将让您根据预算灵活选择合适的套餐。

立即获取 Web Scraping API,开始您的数据抓取之旅吧!

关于作者
Suciu Dan, 联合创始人 @ WebScrapingAPI
Suciu Dan联合创始人

Suciu Dan 是 WebScrapingAPI 的联合创始人,他撰写了关于 Python 网页抓取、Ruby 网页抓取以及代理基础设施的实用指南,这些指南专为开发者而设计。

开始构建

准备好扩展您的数据收集规模了吗?

加入2,000多家企业,使用WebScrapingAPI在无需任何基础设施开销的情况下,以企业级规模提取网络数据。