使用rvest寻址字段的两种方法有什么区别

使用rvest寻址字段的两种方法有什么区别,r,xpath,rvest,R,Xpath,Rvest,我有一个关于rvest的快速问题。 这两个电话有什么区别 library(rvest) document <- read_html('http://www.wikidata.org') 为什么它在我过滤的节点之外寻找 这仅仅是我的错误理解,还是一些页面问题或库错误?帮助页面实际上谈到了这一点: XPath选择器------------------------------------------ 使用XPath链接有点棘手-您可能需要改变 您正在使用的前缀-//始终从根noot中选择 无论

我有一个关于
rvest
的快速问题。 这两个电话有什么区别

library(rvest)
document <- read_html('http://www.wikidata.org')
为什么它在我过滤的节点之外寻找


这仅仅是我的错误理解,还是一些页面问题或库错误?

帮助页面实际上谈到了这一点:

XPath选择器------------------------------------------
使用XPath链接有点棘手-您可能需要改变
您正在使用的前缀-//始终从根noot中选择
无论您当前在文档中的位置

因此,如果在管道之后使用
/
,搜索将忽略管道所在的位置,并在树中找到任何
div/span[3]

您要使用:

content <- document %>% 
    html_nodes(xpath = "/html/body/div[3]/div[3]/div[4]/div[1]")

string <- content %>% 
    html_node(xpath = "div[3]/div/div/div") %>% 
    html_text()

好啊在我的示例中,告诉我变量
scr
cn
具有相同的信息?它们是我的“文件”。我想使用
cn%html\u节点(xpath=“/html/body/div[2]/div[5]/div[6]”
我已经限制了这一秒的节点数少于
scr
?如果在xpath中不使用
/
,那么就要进行编辑以使其更清晰,哈哈!我真蠢!我用一个
/
编写了
heaBM%html\u节点(xpath=“/div/span[3]”%>%html\u text()
,得到了空字符串。伟大的小小的疏忽造成了我的问题。谢谢!
string<- document %>% 
    html_nodes(xpath = "/html/body/div[3]/div[3]/div[4]/div[1]/div[3]/div/div/div") %>% 
    html_text()

> string
# [1] "   Learn about data"
"/html/body/div[3]/div[3]/div[4]/div[1]/div[3]/div/div/div"
content <- document %>% 
    html_nodes(xpath = "/html/body/div[3]/div[3]/div[4]/div[1]")

string <- content %>% 
    html_node(xpath = "div[3]/div/div/div") %>% 
    html_text()
string<- document %>% 
    html_nodes(xpath = "/html/body/div[3]/div[3]/div[4]/div[1]/div[3]/div/div/div") %>% 
    html_text()