从JSON中提取R数据的网络爬虫 | 您所在的位置:网站首页 › 从网站爬数据 › 从JSON中提取R数据的网络爬虫 |
从JSON中提取R数据的网络爬虫
许多网站以JSON格式提供他们的数据,以供使用。JSON(JavaScript Object Notation)是一种基于JavaScript对象语法的文本格式,用于表示结构化数据。在这篇文章中,我们将看到如何从JSON网络源中提取数据并在R编程语言中使用它。 从JSON中刮取网络数据我们将刮取这里提供的关于COVID案例的JSON数据,它看起来像这样。 原始JSON数据 为了在R中获得这些数据,我们需要一个叫做 jsonlite的 库 。 这个库并没有预装在R中,所以要安装它。也有必要在脚本中包含它。 # installing the library install.packages("jsonlite") # include it library(jsonlite)现在我们已经加载了这个库,我们可以使用 fromJSON 函数来解析数据。将上面给出的关于COVID数据的相同URL传递给该函数,其中 原始数据 是一个包含信息的大列表。 # scraping the JSON data to R rawdata right click on the element > click Copy full XPath.首先,我们需要安装 rvest 包,这是一个用于搜刮网页的库。 install.packages('rvest')因此,假设我们有兴趣在trainman.in上搜刮这个URL上的14553号列车的时刻表。 https://www.trainman.in/train/14553然后在检查中选择时间表中的第一行元素。 为演示目的而刮取的示范性网站 继续并复制上面提到的XPath。它将是这样的,也可能会改变。 /html/body/app-root/app-wrapper/div/main/train-schedule /div[2]/div[1]/div/div[3]/table/tbody/tr[1]选择复制以填充XPath选项,以获得菜单 我们得到的XPath只针对一行。那其他的行呢?为此,从 tr [2]中删除下标部分。 /html/body/app-root/app-wrapper/div/main/train-schedule /div[2]/div[1]/div/div[3]/table/tbody/tr所以现在它不仅给出了一条记录,而且给出了表中的所有记录。要在R中刮取这些数据,需要调用URL,并存储它。现在通过调用 read_html(URL) 获得HTML数据 。 现在要过滤出特定的元素,使用 html_nodes() 传递页面和XPath 。并使用 **% >% html_text() **来只获得不包括标签和细节的文本部分。 # include the installed library rvest library(rvest) # call the url url |
CopyRight 2018-2019 实验室设备网 版权所有 |