如何在R中的RVest中将XPATH值定义为html_nodes中的变量

Sol*_*mon 1 xpath r rvest

在使用R(rvest)进行网页抓取时,我需要将XPATH值定义为html_nodes中的变量。这样我就可以遍历许多XPATH。当我在外部定义XPATH时,它会引发错误(例如,当xpath = // * [@ id =“ banner”]时会出现错误)。能否请你帮忙。我的代码:

xpath <- as.character('//*[@id="title-overview-widget"]')
      name <- lego %>% 
      html_nodes(xpath) %>%
      html_text()
Error Message : Error in tokenize(css) : Unexpected character '/' found at position 1
Run Code Online (Sandbox Code Playgroud)

MrF*_*ick 5

html_nodes有三个参数:文档,css选择器和xpath选择器。通过在%>%链中使用它,您将用文档填充第一个参数,但是随后将设置第二个参数,即css选择器(这就是错误消息与CSS相关的原因),而不是xpath选择器。您应该使用命名参数来解决此问题

name <- lego %>% 
      html_nodes(xpath=xpath) %>%
      html_text()
Run Code Online (Sandbox Code Playgroud)