使用 R 语言从网页中提取所有 URL
在本文中,我们将学习如何使用 R 编程语言从网页中删除所有 URL。
为了废弃 URL,我们将使用httr和XML库。我们将使用httr包生成 HTTP requestsXML 和XML以使用 xml 标签识别 URL。
- httr 库用于在 R 语言中发出 HTTP 请求,因为它为 curl 包提供了一个包装器。
- XML 库用于处理 XML 文件和 XML 标记。
安装:
install.packages(“httr”)
install.packages(“XML”)
安装所需的包后,我们需要导入httr和XML库并创建一个变量并存储站点的 URL。现在我们将使用httr包的GET()来发出 HTTP 请求,所以我们有原始数据,我们需要将其转换为 HTML 格式,这可以通过使用htmlParse()来完成
我们已经成功地报废了 HTML 数据,但我们只需要 URL,因此我们使用 xpathSApply() 报废 URL 并将 HTML 数据传递给它,现在我们还没有完成,我们必须将 XML 标记传递给它,以便我们可以获得与之相关的所有内容标签。对于 URL,我们将使用“href”标签来声明 URL。
注意:如果您已经安装过一次软件包,则无需使用 install.packages()。
逐步实施
第 1 步:安装库:
R
# installing packages
install.packages("httr")
install.packages("XML")
R
# importing packages
library(httr)
library(XML)
R
url<-"https://www.geeksforgeeks.org"
# making http request
resource<-GET(url)
R
# parsing data to html format
parse<-htmlParse(resource)
R
# scrapping all the href tags
links<-xpathSApply(parse,path = "//a",xmlGetAttr,"href")
# printing links
print(links)
R
# installing packages
install.packages("httr")
install.packages("XML")
# importing packages
library(httr)
library(XML)
# storing request url in url variable
url < -"https://www.geeksforgeeks.org"
# making http request
resource < -GET(url)
# converting all the data to HTML format
parse < -htmlParse(resource)
# scrapping all the href tags
links < -xpathSApply(parse, path="//a", xmlGetAttr, "href")
# printing links
print(links)
第 2 步:导入 图书馆:
R
# importing packages
library(httr)
library(XML)
第 3 步:发出 HTTP 请求:
在这一步中,我们将在 GET() 中传递我们的 URL 以请求站点数据并将返回的数据存储在资源变量中。
R
url<-"https://www.geeksforgeeks.org"
# making http request
resource<-GET(url)
第 4 步:以 HTML 格式解析站点数据:
在这一步中,我们使用 htmlparse() 将数据解析为 HTML。
R
# parsing data to html format
parse<-htmlParse(resource)
第 5 步:识别 URL 并打印它们:
在这一步中,我们使用 xpathSApply() 来定位 URL。
R
# scrapping all the href tags
links<-xpathSApply(parse,path = "//a",xmlGetAttr,"href")
# printing links
print(links)
我们知道 标签用于定义 URL,它存储在href属性中。
因此xpathSApply()将找到所有 标记并废弃存储在href属性中的链接。然后我们将所有的 URL 存储在一个变量中并打印出来。
例子:
R
# installing packages
install.packages("httr")
install.packages("XML")
# importing packages
library(httr)
library(XML)
# storing request url in url variable
url < -"https://www.geeksforgeeks.org"
# making http request
resource < -GET(url)
# converting all the data to HTML format
parse < -htmlParse(resource)
# scrapping all the href tags
links < -xpathSApply(parse, path="//a", xmlGetAttr, "href")
# printing links
print(links)
输出: