网页抓取数据(了解网页在开始学习如何在大数据分析R语言中进行网络抓取)

优采云 发布时间: 2021-09-28 05:30

  网页抓取数据(了解网页在开始学习如何在大数据分析R语言中进行网络抓取)

  互联网已经成熟,可以用于您自己的个人项目的数据集。有时,您很幸运,可以访问一个 API,您可以在其中直接使用大数据分析 R 语言来请求数据。有时,您不会走运,也无法从整洁的格式中获得。遇到这种情况,我们就需要求助于网络爬虫,它是一种通过在网站的HTML代码中查找所需数据来获取待分析数据的技术。

  在如何使用大数据分析R语言进行网络爬虫中,我们将介绍如何使用大数据分析R语言进行网络爬虫的基础知识。我们将从国家气象局 网站 的天气预报中获取数据并将其转换为可用格式。

  当我们找不到所需的数据时,网络抓取将提供机会,并为我们提供实际创建数据集所需的工具。并且因为我们使用大数据分析R语言进行网络爬虫,如果我们使用的网站已经更新,我们只需再次运行代码即可获取更新后的数据集。

  了解网络

  在开始学习如何抓取网页之前,我们需要了解网页本身的结构。

  从用户的角度来看,网页的文本、图像和链接以美观且易于阅读的方式组织起来。但是网页本身是用特定的编码语言编写的,然后由我们的网络浏览器解释。在做网页爬虫的时候,我们需要处理网页本身的实际内容:浏览器解释前面的代码。

  用于构建网页的主要语言称为超文本标记语言(HTML)、级联样式表(CSS)和 Javasc 大数据分析 R 语言 ipt。HTML 提供网页的实际结构和内容。CSS 提供网页的样式和外观,包括字体和颜色等详细信息。Javasc大数据分析R语言ipt提供网页功能。

  在如何使用大数据分析R语言rvest进行网络爬虫中,我们将主要关注如何使用大数据分析R语言网络爬虫来读取构成网页的HTML和CSS。

  HTML

  与用于大数据分析的 R 语言不同,HTML 不是一种编程语言。相反,它被称为标记语言——它描述了网页的内容和结构。HTML 是使用标记来组织的,标记被符号包围。不同的标签执行不同的功能。许多标签将一起形成并收录网页的内容。

  最简单的 HTML 文档如下所示:

  

  虽然上面是一个有效的 HTML 文档,但它没有文本或其他内容。如果您将其另存为 .html 文件并使用 Web 浏览器打开它,您将看到一个空白页面。

  请注意,html 这个词用方括号括起来表示它是一个标签。要向此 HTML 文档添加更多结构和文本,我们可以添加以下内容:

  

  在这里,我们添加了 和 标签,为文档添加了更多结构。

  标签是我们用来在 HTML 中指定段落文本的标签。

  HTML中有很多标签,但是如何使用大数据分析R语言rvest进行网络爬虫,我们将无法涵盖所有​​标签。如果你有兴趣,你可以查看这个网站。最重要的一点是要知道标签具有特定的名称(html、body、p 等),以便它们可以在 HTML 文档中被识别。

  请注意,每个标签都是“配对”的,这意味着每个标签都伴随着另一个名称相似的标签。也就是说,开始标签与指示 HTML 文档开始和结束的另一个标签配对。而且和一样。

  意识到这一点很重要,因为它允许标签相互嵌套。嵌套在和标签中,嵌​​套在。这种嵌套使 HTML 具有“树状”结构:

  

  使用大数据分析R语言进行网络爬虫时,这种树状结构会告诉我们如何找到某些标签,所以一定要记住这一点。如果一个标签与其他标签嵌套,则收录的标签称为父标签,每个标签称为“子标签”。如果父级中有多个子级,则这些子级标签统称为“兄弟级”。父母、孩子和兄弟姐妹的这些概念让我们了解标签的层次结构。

  CSS

  HTML 提供网页的内容和结构,而 CSS 提供有关网页样式的信息。如果没有 CSS,网页将变得非常简陋。这是一个没有 CSS 的简单 HTML 文档,演示了它。

  当我们谈论风格时,我们指的是各种事物。样式可以指特定 HTML 元素的颜色或位置。与 HTML 一样,CSS 材料的范围如此之大,以至于我们无法涵盖该语言中所有可能的概念。如果您有兴趣,可以在这里了解更多信息。

  在我们需要学习这两个概念之前,我们先深入了解大数据分析 R 语言网页抓取代码类和 IDS。

  首先,让我们谈谈类。如果我们想创建一个网站,那么通常我们希望网站的相似元素看起来一样。例如,我们可能希望列表中的许多项目以与红色相同的颜色显示。

  我们可以通过在文本的 HTML 标签的每一行中直接插入一些收录颜色信息的 CSS 来实现,例如:

  

  样式文章指出我们正在尝试应用CSS标签。在引号里面,我们看到了一个键值对“colo big data analysis R language: big data analysis R language ed”。Colo大数据分析R语言是指标记中文字的颜色,红色表示应该是一种颜色。

  但是正如我们在上面看到的,我们已经多次重复这个键值对。这并不理想——如果我们想改变文本的颜色,我们必须逐行改变每一行。

  我们可以用类选择器替换它,而不是在所有这些标签中以样式重复此文本:

  

  类选择,我们可以更好地展示这些标签在某种程度上是相关的。在单个 CSS 文件中,我们可以通过编写以下内容来创建红色文本类并定义其外观:

  

  将这两个元素组合成一个网页会产生与第一组红色标签相同的效果,但它使我们可以更轻松地进行快速更改。

  当然,在如何使用大数据分析R语言进行爬虫方面,我们感兴趣的是爬虫,而不是构建网页。但是,我们在进行网页爬虫时,通常需要选择特定类别的 HTML 标签,因此我们需要了解 CSS 类是如何工作的。

  同样,我们可能经常想要捕获由 id 标识的特定数据。CSS ID 用于为单个元素提供可识别的名称,就像类如何帮助定义元素类一样。

  

  如果将 id 附加到 HTML 标签上,我们在使用大数据分析 R 语言进行实际网络抓取时可以更容易地识别标签。

  如果您对类和 id 不太了解,请不要担心,当我们开始编写代码时,它会变得更加清晰。

  有几个大数据分析 R 语言库旨在使用 HTML 和 CSS,并能够遍历它们以查找特定标签。我们将在如何使用大数据分析 R 语言 rvest 进行网络爬虫中使用的库是大数据分析 R 语言马甲。

  大数据分析R语言马甲库

  大数据分析R语言马甲库由传奇人物哈德利·威克姆(Hadley Wickham)维护,它可以让用户轻松地从网页中抓取(“收获”)数据。

  大数据分析 R 语言马甲是 tidyve 大数据分析 R 语言 se 库之一,因此它可以很好地与捆绑软件中收录的其他库配合使用。大数据分析 R 语言背心的灵感来自 Python 网页抓取库 BeautifulSoup。(相关:o 你的 BeautifulSoup Python 教程。)

  R语言爬取网页进行大数据分析

  为了使用大数据分析R语言马甲库,我们首先需要安装它,并使用lib大数据分析R语言a大数据分析R语言y()函数将其导入。

  

  为了开始解析网页,我们首先需要从收录网页的计算机服务器请求数据。为了返老还童,大数据分析R语言ead_html()服务于这个目的的函数就是一个函数。

  大数据分析R语言ead_html()接受Web U大数据分析R语言L作为参数。让我们从之前的简单无 CSS 页面开始,了解该功能是如何工作的。

  simple dataquestio.github.io/web-sc 大数据分析 R 语言 aping-pages/simple.html")

  大数据分析 R 语言的 ead_html() 函数返回一个列表对象,其中收录我们之前讨论的树结构。

  

  假设我们要将单个标签中收录的文本存储到一个变量中。为了访问这个文本,我们需要弄清楚如何定位这个特定的文本。这通常是 CSS 类和 ID 可以帮助我们的地方,因为优秀的开发人员通常会将 CSS 高度清晰地放在他们的 网站 上。

  在这种情况下,我们没有这样的 CSS,但我们知道要访问的标记是页面上唯一的标记。为了捕获文本,我们需要使用 html_nodes() 和 html_text() 函数来搜索

  标记和检索文本。以下代码执行此操作:

  

  simple 变量已经收录了我们想要爬取的 HTML,所以剩下的任务就是搜索需要的元素。由于我们使用的是tidyve大数据分析R语言se,所以我们可以将HTML传递给不同的函数。

  我们需要将特定的 HTML 标签或 CSS 类传递给 html_nodes() 函数。我们需要标记,因此我们将字符“p”传递给函数。html_nodes() 也返回一个列表,但它返回 HTML 中具有给定特定 HTML 标记或 CSS 类/标识的所有节点。节点指的是树结构中的一个点。

  拥有所有这些节点后,您可以将输出 html_nodes() 传递给 html_text() 函数。我们需要获取标签的实际文本,因此该功能可以帮助您解决这个问题。

  这些功能共同构成了许多常见的 Web 抓取任务。通常,使用 R 语言(或任何其他语言)进行大数据分析的网页抓取可以归结为以下三个步骤:

  一种。获取要抓取的网页的 HTML

  湾 确定您要阅读页面的哪个部分,并找出您需要选择的 HTML/CSS

  C。选择 HTML 并根据需要进行分析

  登陆页面

  为了

  , 我们会查国家气象局的网站。假设我们有兴趣创建我们自己的天气应用程序。我们需要天气数据本身来填充它。

  天气数据每天都会更新,所以我们会在需要的时候使用网络爬虫从NWS网站获取这些数据。

  出于我们的目的,我们将从旧金山获取数据,但每个城市的网页看起来都一样,因此相同的步骤可用于任何其他城市。旧金山页面截图如下:

  

  我们对每日天气预报和温度特别感兴趣。每日天气预报和夜间天气预报。现在我们已经确定了网页所需的部分,我们可以浏览 HTML 以查看需要选择哪些标签或类来捕获此特定数据。

  使用Ch大数据分析R语言ome Devtools

  值得庆幸的是,大多数现代浏览器都有一个工具,允许用户直接检查任何网页的 HTML 和 CSS。在Google Ch大数据分析R语言ome和Fi大数据分析R语言efox中,它们被称为开发者工具,在其他浏览器中的名称相似。对我们来说最有用的具体工具是Inspecto大数据分析R语言。

  您可以在浏览器的右上角找到开发者工具。如果你使用的是Fi大数据分析R语言efox,应该可以看到开发者工具;如果您使用Ch大数据分析R语言ome,可以浏览查看->Mo大数据分析R语言e工具->开发大数据分析R语言工具。这将在浏览器窗口中打开开发者工具:

  

  我们之前处理的 HTML 只是一个基本的知识,但是您将在浏览器中看到的大多数网页都非常复杂。开发人员工具将使我们更容易选择网页的确切元素来抓取和检查 HTML。

  我们需要在天气页面的 HTML 中查看温度,因此我们将使用“检查”工具来查看这些元素。Inspect 工具将挑选出我们正在寻找的确切 HTML,因此我们不必自己查看它!

  

  通过单击元素本身,我们可以看到以下 HTML 收录 7 天的预测。我们压缩了其中的一些以使其更具可读性:

  

  使用我们学到的东西

  现在我们已经确定了需要在网页中定位的具体 HTML 和 CSS,我们可以使用大数据分析 R 语言马甲来捕捉它。

  从上面的 HTML 中,似乎每个温度都收录在类 temp 中。拥有所有这些标签后,您可以从中提取文本。

  

  使用这段代码,大数据分析R语言ecasts现在是低温和高温对应的字符串向量。

  现在我们有了对R语言变量大数据分析感兴趣的实际数据,我们只需要进行一些常规的数据分析,将向量转换成需要的格式即可。例如:

  

  下一步

  这个大数据分析 R 语言马甲库使用与 tidyve 大数据分析 R 语言 se 库相同的技术,可以轻松执行网络爬虫。

  如何使用大数据分析 R 语言中的网页抓取 rvest 应该为您提供启动小型网页抓取项目并开始探索更高级的网页抓取程序所需的工具。一些与网站爬行极其兼容的网站是体育网站,网站与股票价格甚至新闻报道。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线