【问题标题】:Extracting location data in R在 R 中提取位置数据
【发布时间】:2018-01-03 17:48:51
【问题描述】:
我想提取 R 中酒店位置的经度和纬度。每个Webpage 都有一个嵌入了其位置的 Google 地图。我使用选择器小工具尝试了各种节点,但无法提取位置。我也尝试使用This 查询作为参考。
library(rvest)
library(magrittr)
library(stringr)
pg <- read_html("https://www.tripadvisor.in/Hotel_Review-g304551-d3507485-Reviews-Red_Fox_Hotel_Delhi_Airport-New_Delhi_National_Capital_Territory_of_Delhi.html")
pg %>%
html_nodes("#map0Div")
【问题讨论】:
标签:
javascript
r
web-scraping
rvest
【解决方案1】:
也许这可能是一种提取<script> 节点的方法。使用你的包
library(rvest)
library(stringr)
library(magrittr)
通过html_nodes("script") 获得访问权限,您可以选择所有匹配“maps.google”的元素
pg %>%
html_nodes("script") %>%
.[str_detect(., "maps\\.google")]
然后提取地理位置
pg %>%
html_nodes("script") %>%
.[str_detect(., "maps\\.google")] %>%
str_extract_all("[0-9]+\\.[0-9]+,[0-9]+\\.[0-9]+")
因为有很多,我不知道你在找哪一个,所以看看匹配的“maps.google”元素会很有帮助
pg %>%
html_nodes("script") %>%
.[str_detect(., "maps\\.google")] %>%
str_extract_all("\".*maps\\.google.*\"")