R语言中的网页抓取:您应牢记的重要事项
当您决定使用 R 进行网页抓取时,有几点需要您充分理解。
若要使用 R 进行网页抓取,首先必须学习并掌握网页抓取和 HTML 的基础知识。你需要学会如何通过浏览器访问 HTML 代码,并了解 HTML 及标记语言的所有底层概念。这无疑将为数据抓取奠定基础。
一旦掌握了这些基础知识,使用R进行数据抓取将比您想象的要容易得多。以下内容将有助于您使用R进行网页抓取工作。
自 80 年代末由蒂姆·伯纳斯-李首次提出以来,通过 HTML 相互连接的文档平台(即万维网)构成了每个网页乃至整个网络的基础。当你在浏览器中输入一个网站地址时,浏览器会下载并渲染该页面。
但具体该如何使用 R 进行网页抓取呢?在开始操作之前,你首先需要了解网页的具体结构及其组成要素。你会发现,虽然网页上呈现着精美的图片和色彩,但底层的 HTML 文档本质上却是以文本形式存在的。
HTML文档是网页的技术性表现形式,它告诉浏览器应显示哪些HTML元素以及具体如何显示。若想成功从网页中提取数据,你必须对HTML文档进行分析和理解。
查看 HTML 代码时,你会看到诸如 <title>、</title>、<body>、</body> 等内容。这些被称为 HTML 标签,是 HTML 文档中的特殊标记。所有标签都发挥着重要作用,且每个标签都会被网页浏览器以不同的方式进行解析。
例如,"<title>"向浏览器提供网页的标题,而<body>则向浏览器提供网页的主要内容。此外,标签通常由开始和结束标记组成,其间包含内容,或者某些标签可以自行闭合。但具体采用哪种形式,很大程度上取决于具体应用场景和标签类型。
此外,标签还带有属性,这些属性提供了额外的HTML数据和信息,与所属的HTML标签相关。一旦您掌握了HTML文件的核心概念、HTML表格、文档树、标签以及特定HTML元素的正确知识,您感兴趣的所有部分都会变得更加清晰易懂。
那么,这里的核心要点是什么?简而言之,HTML页面被视为一种结构化格式,并配有标签层次结构,爬虫将在网页抓取项目中利用这一结构来提取所有所需信息。
现在,是时候使用 R 对目标网页进行网络爬取了。请记住一点:你只会抓取 HTML 内容的表层,因此这里不会提取数据框,而是直接输出完整的 HTML 代码。
因此,若想抓取网页的所有元素并查看其呈现效果,需使用 redLines() 函数在开发环境中绘制 HTML 内容的所有行,从而生成其可视化表示。
现在,你需要输出“flat_html”,R 控制台将显示你需要的结果,大致如下所示:
图片来源:
请务必牢记一点:网页抓取仅为娱乐之用,每位数据科学专家都深知这一点。这无疑会是一次激动人心的实验,你可以在自己的操作系统上轻松抓取多个网页页面,例如IMDB网站。
“无论您是抓取网页的首页还是其中任意一页,只要操作正确,都会取得成功。尽管抓取 HTML 文件可能会产生海量输出,但这并非真正的 HTML 文档。这是因为 redLines() 虽然正确读取了文档,却未考虑文档的结构。
但这仅仅是一个示例,旨在向您展示通过 R 网页抓取方法抓取网页浏览器数据的具体过程。实际应用中的代码会复杂得多。不过,目前有一系列可用的库,它们将极大简化 R 网页抓取工作。