Parsing getPageSource不适用于RSelenium
我的目标是检索位于不同页面上的评论信息。我为每个页面创建了一个带有URL的csv文件,并将每一行设置为remotedriver导航的目标。我为Selenium创建了一个循环,它应该访问所有这些URL并检索所需的节点。之后 我创建了一个循环,用于检索html页面节点,并由此生成统一的数据框架(通过将循环中每次迭代的结果与具有相同列名称的df相结合,这是以前创建的) 实际上,我在两个月前做了这件事,但现在我只能得到第一页的页面源代码,而不能得到下一页。同时,remotedriver可以顺利地导航页面(这意味着URL正常!) 代码示例:Parsing getPageSource不适用于RSelenium,parsing,web-scraping,data-binding,scrape,rselenium,Parsing,Web Scraping,Data Binding,Scrape,Rselenium,我的目标是检索位于不同页面上的评论信息。我为每个页面创建了一个带有URL的csv文件,并将每一行设置为remotedriver导航的目标。我为Selenium创建了一个循环,它应该访问所有这些URL并检索所需的节点。之后 我创建了一个循环,用于检索html页面节点,并由此生成统一的数据框架(通过将循环中每次迭代的结果与具有相同列名称的df相结合,这是以前创建的) 实际上,我在两个月前做了这件事,但现在我只能得到第一页的页面源代码,而不能得到下一页。同时,remotedriver可以顺利地导航页面
uuu<-read.csv("/Users/uuu.csv")
data<-data.frame(title=character(),
date_travel=character(),
grades=character())
####starting selenium####
rd<-rsDriver(remoteServerAddr = "localhost", browser = "firefox", port=9353L)
for (i in 1:nrow(uuu)){
tryCatch({
url<-uuu$url[i]
cd<-rd$client
cd$navigate(url)
Sys.sleep(2)
reviews2<-read_html(cd$getPageSource()[[1]])
title<-reviews2 %>%
html_nodes(".ocfR3SKN") %>%
html_text()
date_travel<-reviews2 %>%
html_nodes("._34Xs-BQm") %>%
html_text()
try(
{
record_url<-data.frame(title,
date_travel))
}
, silent = T
)
try(
{
data <- bind_rows(data, record_url)
}
, silent = T
)
Sys.sleep(2)
})
}
u使用注意:您在记录中有一个(多个)_url@QHarr谢谢你的评论!为了节省更多空间,我没有在代码中添加其他特征,如等级、路线、航班等(在标题和日期所在的同一位置)。如果没有trys和这个额外的括号(谢谢!),我得到的是:-“数据中的错误。帧(标题、日期、旅行、等级、路线、航班、等级),:参数表示不同的行数:0,5另外:有24个警告(使用warnings()查看它们)”看起来读取下一个URL的页面源代码有问题,我不知道为什么…在循环过程中打印状态代码?@QHarr如果我没有弄错,我在这之后添加了这行“状态代码(reviews2)”“Reviews 2否。这是我的错。您正在使用selenium进行导航,并且您已经说过可以在访问正确的页面时看到它。