我一直在尝试编写一个R函数来从公司网站上抓取和解析Uber覆盖区域的geojson数据,但以失败告终。
用户可以在此处显示的地图上看到我试图抓取的面的可视表示:https://www.uber.com/cities/atlanta查看firefox中的页面源代码时会发现,描述我想要的面的地理坐标就在此节点中
<script type="text/javascript">
var cityJSON = { ... }
</script>所以,这就是我一直试图用脚本获取的节点。然而,看起来该节点根本没有进入R。正在运行
fileURL <- "https://www.uber.com/cities/atlanta"
xData <- getURL(fileURL)
html_parsed <- htmlParse(xData)
print(html_parsed)返回页面源代码中的几乎所有内容,除了我要查找的节点!这和rCurl没有加载javascript有什么关系吗?我处理这个问题是不是完全错了?
(使用OS X Mavericks进行测试)
发布于 2015-06-26 15:55:09
使用httr、stringr和jsonlite包以及magrittr管道:
x <- GET(url) %>%
content %>%
as("character") %>%
str_extract("(?<=cityJSON = )\\{.*?\\}(?=;)") %>%
fromJSON注意,结果列表包含一个'geojson‘成员,该成员需要通过fromJSON进行处理。
发布于 2015-06-26 08:27:46
library(rvest)
k1<-read_html("https://www.uber.com/cities/atlanta")%>%
html_nodes("script")%>%
.[3]%>%
html_text(trim=TRUE)此后,您需要使用正则表达式来格式化数据
https://stackoverflow.com/questions/31062884
复制相似问题