使用submit_form时,url_absolute错误“与STRSXP不兼容”

时间:2017-03-23 15:23:38

标签: r rvest httr

我正在尝试抓取http://www.emedexpert.com/lists/brand-generic.shtml网页上的品牌和仿制药名称

library(httr)
library(rvest)

session <- read_html("http://www.emedexpert.com/lists/brand-generic.shtml")
form1 <- html_form(session)[[2]]
form2 <- set_values(form1, brand = "tylenol")
submit_form(session, form2)

然而,这会导致错误消息:

Error in xml2::url_absolute(form$url, session$url) : 
        not compatible with STRSXP

因此,根据对同一错误消息("Error: not compatible with STRSXP" on submit_form with rvest)的回答,我添加了一个会话$ url,如下所示:

session$url <- "http://www.emedexpert.com/lists/brand-generic.shtml"   # added from S.Ov

但我仍然收到相同的错误消息。所以我也尝试添加各种排列,也添加了form2 $ url,例如这些

form2$url    <- "http://www.emedexpert.com/lists/brand-generic.shtml"
form2$url    <- ""
form2$url    <- "/"
submit_form(session, form2)

此时,错误消息消失,我获得了一个包含大部分所需网页的网页。然而,它似乎完全缺乏品牌和通用名称表。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

是的@hackR,RSelenium并不总是答案。

library(rvest)
url<-"http://www.emedexpert.com/lists/bg.php?myc"
page<-html_session(url)
table<-html_table(read_html(page))[[1]]

这可以帮助你,我希望。