网络抓取在r。如何从(" +更多"等)中删除数据。

时间:2016-06-08 08:49:15

标签: r xpath web-scraping

假设我想从此网页(https://www.airbnb.com/rooms/6676364)获取有关设施的信息。它只适用于可见部分。 但是如何从" +更多"按钮?

我尝试了来自"源代码"的节点。在xpathSApply的帮助下,它会返回我" + more"。 你知道这个问题的解决方案吗?

我的RSelenium方法:

$ path="/home/me/src/test /home/me/src/vendor/a /home/me/src/vendor/b"
$ echo ${path//\/home\/me\/src\/}
test vendor/a vendor/b

也不起作用

1 个答案:

答案 0 :(得分:1)

将RSelenium驱动程序导航到目标URL后,使用以下XPath查找<a>元素,其中内部文本等于设施<div>内的“+更多”:

remDr$navigate(url)
link <- remDr$findElement(using = 'xpath', "//div[@class='row amenities']//a[.='+ More']")

然后点击链接点击以获取完整的便利设施清单:

link$clickElement()

最后,将当前页面HTML源传递给您要用于进一步处理的任何R函数:

doc <- htmlParse(remDr$getPageSource()[[1]])
....