R:如何使用 rvest 或任何 R 包从标签的属性中提取某些元素?



我使用xml2::read_html函数读取下面的字符串(从实际示例简化)。

<table>
<tobody>
<tr>
<td width="71"><a href="JavaScript:gibo_load('http://something.com/XYZW');">
hello
</td>
</tr>
</tobody>
</table>

rvest::html_table(x)能够从它创建一个表,看起来像

如果我将x设置为上面的HTML作为字符串/字符

x1
hello

但是我希望提取URL,这是<a>标记的href属性的一部分。

rvest::html_attrs(x)似乎不起作用。使用任何其他R包的返回从标签中提取属性的方法是什么?

要从节点中提取链接,必须首先获得节点向量,然后将该向量传递给html_attr(),并标识相应的标记。

library(rvest)
library(dplyr)
page<- read_html("<table>
<tobody>
<tr>
<td width="71"><a href="JavaScript:gibo_load('http://something.com/XYZW');">
hello
</td>
</tr>
</tobody>
</table>")

#create a vector of nodes with the links
linknodes <- page %>% html_nodes("a")
#extract the href attribute.
answer <-linknodes %>% html_attr("href")
answer
#[1] "JavaScript:gibo_load('http://something.com/XYZW');"

在这个例子中"JavaScript:…"是href属性的一部分。
如果你只对"http:…"部分,那么您将需要使用gsubstr_extract来获得最终结果。

最新更新