r - 解析网页并转换为 data.frame

标签 r gis

我正试图从这个网站上抓取 Material :http://www.appliedsolutions.org/site/308/Local-Government/Local-Government-Affiliates

具体来说,我感兴趣的是从页面源代码第 598 行附近出现的 javascript 中提取值:

 {
            "title": 'Coconino County',
            "lat": '35.7714',
            "lng": '-111.5111',
            "description": 'Coconino County, AZ <br/> <a href="http://www.coconino.az.gov/" target="_blank"> http://www.coconino.az.gov/</a> <br/>  '
        }

    ,

         {
            "title": 'City of Flagstaff',
            "lat": '35.1981',
            "lng": '-111.6506',
            "description": 'City of Flagstaff, AZ <br/> <a href="http://www.flagstaff.az.gov/   " target="_blank"> http://www.flagstaff.az.gov/   </a> <br/>  '
        }

理想情况下,我想将“title”、“lat”和“lng”值放入 R data.frame 中。

我已经使用 R 中的 readLines 函数来读取页面,但是我无法减少 html 来隔离我需要的数据。

最佳答案

这是使用 RSelenium 包的一种方式。

## Get RSelenium going and navigate to page, retrieve source
require(RSelenium)
RSelenium::checkForServer()
RSelenium::startServer()
remDr <- remoteDriver()
remDr$open()
remDr$setImplicitWaitTimeout(3000)
remDr$navigate("http://www.appliedsolutions.org/site/308/Local-Government/Local-Government-Affiliates")

编辑:根据@jdharrison 的建议,这要简单得多

appData <- remDr$executeScript("return markers;")

dat <- do.call(rbind.data.frame, appData)
dat <- dat[,c("title","lat","lng")]

> head(dat)
        lat       lng               title
   35.7714 -111.5111     Coconino County
   35.1981 -111.6506   City of Flagstaff
   34.8697 -111.7603      City of Sedona
   34.6503 -112.4147      Yavapai County
     32.64 -117.0833 City of Chula Vista
   38.8056 -123.0161  City of Cloverdale

关于r - 解析网页并转换为 data.frame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22188534/

相关文章:

gis - 查找某个点最近的道路及其距离

java - 使用 JRI 时,将 R-Errors(从控制台)发送到 Java 标准输出

python - Rpy2 在安装时找不到我的 R 库

重新缩放向量 R

mysql - 管理内部的大量数据和图像

python - 如何在 Python 安装中重用模块?

java - 如何在android中找到两个区域之间的距离

python - 使用Python改进多边形内的点计算

R RGtk2 g菜单: submenu after using gaction

r - 如何计算logit函数的符号导数?