网页内容抓取工具()
优采云 发布时间: 2022-03-22 23:23网页内容抓取工具()
2.字符串
2.纵梁
当您想到与数据清理和准备相关的任务时,stringr 就会发挥作用。
当您想到与数据清理和准备相关的任务时,它就会发挥作用。
stringr 中有四组基本函数:
Stringr 中有四组基本的函数:
安装
安装
install.packages('stringr')
install.packages('stringr')
3.jsonlite
3.jsonlite
jsonline 包之所以有用,是因为它是一个针对网络优化的 JSON 解析器/*敏*感*词*。
jsonline 包的有用之处在于它是一个针对网络优化的 JSON 解析器/*敏*感*词*。
这很重要,因为它可以在 JSON 数据和关键的 R 数据类型之间建立有效的映射。使用它,我们能够在 R 对象和 JSON 之间进行转换,而不会丢失类型或信息,也不需要任何手动数据整理。
这很关键,因为它允许在 JSON 数据和关键 R 数据类型之间进行有效映射。使用这种方法,我们可以在 R 对象和 JSON 之间进行转换,而不会丢失类型或信息,也无需任何手动数据操作。
这非常适合与 Web API 交互,或者如果您想创建数据可以使用 JSON 进出 R 的方式。
这对于与 Web API 交互非常有用,或者如果您想创建使用 JSON 将数据传入和传出 R 的方法。
安装
install.packages('jsonlite')
install.packages('jsonlite')
在我们开始之前,让我们看看它是如何工作的:
在开始之前,让我们看看它是如何工作的:
首先应该清楚每个网站是不同的,因为进入网站的编码是不同的。
从一开始就应该清楚每个 网站 是不同的,因为进入 网站 的编码是不同的。
网络抓取是一种识别和使用这些编码模式来提取您需要的数据的技术。您的浏览器使您可以通过 HTML 访问该网站。网页抓取只是解析浏览器提供给您的 HTML。
网页抓取是一种识别并使用这些编码模式来提取所需数据的技术。您的浏览器使这个 网站 可以通过 HTML 访问。网页抓取只是解析浏览器提供给您的 HTML。
网页抓取有一个固定的过程,通常是这样工作的:
网页抓取过程如下设置,一般是这样的:
现在让我们去实现以更好地理解它。
现在让我们实现它以更好地理解它。
3.实施(3.实施)
让我们实现它,看看它是如何工作的。我们将在亚马逊网站上抓取一款名为“一加 6”的手机产品的价格比较。
让我们实现它,看看它是如何工作的。我们将搜索亚马逊 网站 来比较一款名为“一加 6”的手机的价格。
你可以在这里看到它。
你可以在这里看到它。
第一步:加载我们需要的包
我们需要在控制台中,在 R 命令提示符下启动进程。到达那里后,我们需要加载所需的包,如下所示:
我们需要在控制台的 R 命令提示符下启动该进程。到达那里后,我们需要按如下方式加载所需的包:
#loading the package:> library(xml2)> library(rvest)> library(stringr)
第 2 步:从亚马逊读取 HTML 内容
#Specifying the url for desired website to be scrappedurl 转到此 URL => 右键单击 => 检查元素
=>转到 chrome 浏览器=>转到该 URL=>右键单击=>检查元素
注意:如果您使用的不是 Chrome 浏览器,请查看这篇文章。
注意:如果您使用的不是Chrome浏览器,请参考这篇文章。
基于 CSS 选择器,例如 class 和 id,我们将从 HTML 中抓取数据。要找到产品标题的 CSS 类,我们需要右键单击标题并选择“检查”或“检查元素”。
基于 class 和 id 等 CSS 选择器,我们将从 HTML 中抓取数据。要找到产品标题的 CSS 类,我们需要右键单击标题并选择“Inspect”或“Inspect Element”。
正如您在下面看到的,我在 html_nodes 的帮助下提取了产品的标题,其中我传递了标题的 id - h1#title - 以及存储了 HTML 内容的网页。
如下所示,我在 html_nodes 的帮助下提取了产品的标题,并传递了标题的 ID ( h1#title ) 和存储 HTML 内容的网页。
我还可以使用 html_text 获取标题文本,并在 head() 函数的帮助下打印标题文本。
我还可以使用 html_text 获取标题文本,并在 head() 函数的帮助下打印标题文本。
#scrape title of the product> title_html title head(title)
输出如下图:
输出如下:
我们可以使用空格和\n来获得产品的标题。
我们可以使用空格和\n来获取产品的标题。
下一步是在 stringr 库中的 str_replace_all() 函数的帮助下删除空格和新行。
下一步是借助 stringr 库中的 str_replace_all() 函数删除空格和换行符。
# remove all space and new linesstr_replace_all(title, “[\r\n]” , “”)
输出:
输出:
现在我们需要按照相同的过程提取产品的其他相关信息。
现在,我们将需要按照相同的过程来提取有关产品的其他相关信息。
产品价格:
产品价格:
# scrape the price of the product> price_html price str_replace_all(title, “[\r\n]” , “”)
# print price value> head(price)
输出:
输出:
产品说明:
产品说明:
# scrape product description> desc_html desc desc desc head(desc)
输出:
输出:
产品评分:
产品等级:
# scrape product rating > rate_html rate rate rate head(rate)
输出:
输出:
产品尺寸:
产品尺寸:
# Scrape size of the product> size_html size_html size size head(size)
输出:
输出:
产品颜色:
产品颜色:
# Scrape product color> color_html color_html color color head(color)
输出:
输出:
第 4 步:我们已成功从所有字段中提取数据,这些数据可用于比较其他网站的产品信息。 (第 4 步:我们已成功从所有字段中提取数据,可用于比较其他站点的产品信息。)
让我们编译并组合它们以计算出一个数据框并检查其结构。
让我们编译和组合它,得到一个数据框并检查它的结构。
#Combining all the lists to form a data frameproduct_data library(jsonlite)
# convert dataframe into JSON format> json_data cat(json_data)
在上面的代码中,我收录了 jsonlite 库,用于使用 toJSON() 函数将数据框对象转换为 JSON 形式。
在上面的代码中,我收录了 jsonlite 库,用于使用 toJSON() 函数将数据框对象转换为 JSON 形式。
在流程结束时,我们以 JSON 格式存储数据并打印出来。如果我们愿意,也可以将数据存储在 csv 文件或数据库中以供进一步处理。
在流程结束时,我们以 JSON 格式存储数据并打印出来。如果您愿意,还可以将数据存储在 csv 文件或数据库中以供进一步处理。
输出:
输出:
按照这个实际示例,您还可以从产品中提取相关数据并与亚马逊进行比较,以计算出产品的公允价值。同样,您可以使用这些数据与其他网站进行比较。
按照这个实际示例,您还可以从产品中提取相同的相关数据,并与亚马逊进行比较,从而得出产品的公允价值。同样,您可以使用该数据与其他 网站 进行比较。
4.尾注(4.尾注)
如您所见,R 可以为您提供从不同网站抓取数据的强大优势。通过这个关于如何使用 R 的实际示例,您现在可以自行探索它并从亚马逊或任何其他电子商务网站提取产品数据。
如您所见,R 可以极大地帮助您从不同的 网站 中抓取数据。通过这个 R 用法的实际示例,您现在可以自己探索 R 并从亚马逊或任何其他电子商务中提取产品数据网站。
请注意:某些网站有反抓取政策。如果您过度使用它,您将被阻止,您将开始看到验证码而不是产品详细信息。当然,您也可以学习使用不同的可用服务来解决验证码问题。但是,您确实需要了解抓取数据的合法性以及您对抓取的数据所做的任何事情。
请注意:部分网站有反爬虫政策。如果您做得太多,您将被阻止,您将开始看到验证码而不是产品详细信息。当然,您也可以使用各种可用的服务来学习如何处理验证码。但是,您确实需要了解抓取数据的合法性以及您对抓取的数据所做的任何事情。
请随时将您对这篇文章的反馈和建议发送给我!
请随时向我发送您对这篇文章的反馈和建议!
翻译自:
r语言抓取网页数据