使用R语言从网页上提取所有的URLs
在这篇文章中,我们将学习如何使用R编程语言从网页中提取所有的URLs。
为了提取URLs,我们将使用 httr 和 XML 库。我们将使用 httr 包来进行HTTP请求XML和 XML 来使用xml标签识别URLs。
- httr库用于在R语言中进行HTTP请求,因为它为curl包提供了一个封装器。
- XML库用于处理XML文件和XML标签。
安装
install.packages(“httr”)
install.packages(“XML”)
在安装完所需的包后,我们需要导入 httr 和 XML 库,并创建一个变量并存储网站的URL。现在我们将使用 httr 包的 GET() 来进行 HTTP 请求,所以我们有原始数据,我们需要将其转换为 HTML 格式,这可以通过使用 htmlParse() 来完成。
我们已经成功地搜刮了HTML数据,但我们只需要URL,所以为了搜刮URL,我们用xpathSApply()并将HTML数据传递给它,我们现在还没有完成,我们必须将XML标签传递给它,这样我们就可以得到与该标签相关的一切。对于URL,我们将使用 “href “标签,它用于声明URL。
注意: 如果你已经安装过一次软件包,就不需要使用install.packages()。
分步实现
第1步: 安装库。
# installing packages
install.packages("httr")
install.packages("XML")
第2步: 导入 库。
# importing packages
library(httr)
library(XML)
第3步: 发出HTTP请求。
在这一步,我们将在GET()中传递我们的URL来请求网站数据,并将返回的数据存储在资源变量中。
url<-"https://www.geeksforgeeks.org"
# making http request
resource<-GET(url)
第4步: 将网站数据解析为HTML格式。
在这一步,我们使用htmlparse()将数据解析为HTML。
# parsing data to html format
parse<-htmlParse(resource)
第5步: 识别 URLs并打印。
在这一步,我们用xpathSApply()来定位URLs。
# scrapping all the href tags
links<-xpathSApply(parse,path = "//a",xmlGetAttr,"href")
# printing links
print(links)
我们知道 <a>
标签是用来定义URL的,它被存储在 href 属性中。
<a href="url"></a>
所以xpathSApply()
会找到所有的<a>
标签 ,并刮除存储在 href 属性中的链接。然后我们将把所有的URL存储在一个变量中并打印出来。
例子
# 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)
输出