用R R网掠刮网

时间:2016-06-01 08:32:33

标签: r web-scraping rselenium

例如,我想从这个网页(空间,设施,价格......和评论)中删除数据 https://www.airbnb.com/rooms/9985824?guests=1&s=d2dNfFMd

我想用于此目的rselenium包。 这是我的代码:

BoltParallelism

然后在SelectorGadget的帮助下,我发现,我认为正确的抓取元素:

url <- "https://www.airbnb.com/rooms/9985824?guests=1&s=d2dNfFMd"
library('RSelenium')
pJS <- phantom()
library('XML')
shell.exec(paste0("C:\\Users\\Daniil\\Desktop\\R-language,Python\\file.bat"))
Sys.sleep(10)

checkForServer()
startServer()
remDr <- remoteDriver(browserName="chrome", port=4444)
remDr$open(silent=T)

我的问题是:如何将其带入文本(字符串)? 或者也许存在使用rselenium收集数据的其他方法。

非常感谢

1 个答案:

答案 0 :(得分:1)

我不确定file.bat中的内容,但您似乎主要想收集有关列表设施的数据。我刚刚使用了firefox并跳过了代码中的phantomjs部分:

url <- "https://www.airbnb.com/rooms/9985824?guests=1&s=d2dNfFMd"

library('RSelenium')

checkForServer()
startServer()
remDr <- remoteDriver(browserName="firefox", port=4444)
remDr$open(silent=T)
remDr$navigate(url)

var <- remDr$findElement('css selector','#details hr+ .row')

print(var$getElementText())
[[1]]
[1] "The Space\nAccommodates: 2\nBathrooms: 1.5\nBed type: Real Bed\nBedrooms: 1\nBeds: 1\nProperty type: Apartment\nRoom type: Private room\nHouse Rules"

从这里,您可以解析字符串或执行其他数据收集。