首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用RCurl抓取javascript

用RCurl抓取javascript
EN

Stack Overflow用户
提问于 2015-06-26 08:14:18
回答 2查看 782关注 0票数 2

我一直在尝试编写一个R函数来从公司网站上抓取和解析Uber覆盖区域的geojson数据,但以失败告终。

用户可以在此处显示的地图上看到我试图抓取的面的可视表示:https://www.uber.com/cities/atlanta查看firefox中的页面源代码时会发现,描述我想要的面的地理坐标就在此节点中

代码语言:javascript
复制
<script type="text/javascript">
var cityJSON = { ... }
</script>

所以,这就是我一直试图用脚本获取的节点。然而,看起来该节点根本没有进入R。正在运行

代码语言:javascript
复制
fileURL <- "https://www.uber.com/cities/atlanta"
xData <- getURL(fileURL)
html_parsed <- htmlParse(xData)
print(html_parsed)

返回页面源代码中的几乎所有内容,除了我要查找的节点!这和rCurl没有加载javascript有什么关系吗?我处理这个问题是不是完全错了?

(使用OS X Mavericks进行测试)

EN

回答 2

Stack Overflow用户

发布于 2015-06-26 15:55:09

使用httr、stringr和jsonlite包以及magrittr管道:

代码语言:javascript
复制
x <- GET(url) %>%
  content %>%
  as("character") %>%
  str_extract("(?<=cityJSON = )\\{.*?\\}(?=;)") %>%
  fromJSON

注意,结果列表包含一个'geojson‘成员,该成员需要通过fromJSON进行处理。

票数 4
EN

Stack Overflow用户

发布于 2015-06-26 08:27:46

代码语言:javascript
复制
library(rvest)
k1<-read_html("https://www.uber.com/cities/atlanta")%>% 
   html_nodes("script")%>%
   .[3]%>%
  html_text(trim=TRUE)

此后,您需要使用正则表达式来格式化数据

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31062884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档