我试图从此页面抓取所有提供商:https://www.agedcareguide.com.au/nursing-homes/providers/vic
我通过在Dock with Docker中运行以下代码在我的Mac上使用RSelenium:
docker run -d -p 4445:4444 selenium/standalone-firefox
然后当我返回RStudio并运行以下内容时:
remDr <- remoteDriver(remoteServerAddr = "localhost", port = 4445L,
browserName = "firefox")
remDr$open()
remDr$navigate("https://www.agedcareguide.com.au/nursing-homes/providers/vic")
remDr$getTitle()
一切都很好。
然后我尝试使用:
来获取元素provs <- remDr$findElement()
在括号内我使用了XPath,CSS Selector,我能想到的一切,但总是会说:
match.arg(使用)出错: &#39;精氨酸&#39;应该是“xpath”,“css选择器”,“id”,“名称”,“标签名称”,“类名”,“链接文本”,“部分链接文本”之一
任何人都有任何想法我会如此严重错误?
答案 0 :(得分:2)
部分解决方案......
与RSelenium
...
remDr$navigate(...)
Sys.sleep(20) #the page keeps loading for some time
page <- remDr$getPageSource()
然后,rvest
...
provs <- page[[1]] %>% read_html() %>%
html_node("#app > div > div.c-col-results > div:nth-child(3) > div > section") %>%
html_text()
经过一些整理(由\\n
拆分后,删除空白)......
provs
[1] "AdventCare" "Providing nursing homes"
[3] "Alexandra Gardens SRS" "Providing nursing homes"
[5] "Allbright Manor" "Providing nursing homes"
[7] "Alliance Care Services Group" "Providing nursing homes"
etc...
希望这有助于您入门,虽然这是一个棘手的问题!