用R抓取webx页面的aspx网页

时间:2017-02-09 19:35:08

标签: asp.net r xpath web-scraping

我正在努力刮掉http://www.phl.org/Pages/Flight-Information.aspx#/Arrivals'在R的网页,以获得费城国际机场的航班抵达时间表(然后最终离开)。这是我到目前为止编写的代码:

nativeQuery=true

但是,这只会刮擦表的标题而不是表数据本身。我检查了网站HTML代码中的网页元素,并在我的脚本中使用了Xpath。作为一个试验,我使用相同的代码来刮取维基百科表,它工作得非常好。我觉得问题出在.aspx网页上。

真的很感激任何帮助!

1 个答案:

答案 0 :(得分:-1)

上面的评论是正确的,html代码是动态填充的,因此rvest库不起作用。如果您在打开开发人员工具的情况下加载网页并检查下载的文件,则会有几个XHR类型的文件。如果您检查这些文件,那么名为FlightTracker.ashx的文件就是一个包含您请求的信息的JSON文件。

确定文件和curl之后,只需要发出httr请求并解析JSON文件:

library(httr)
library(jsonlite)

url<-'http://www.phl.org/_layouts/15/Fuseideas.PHL.SharePoint/FlightTrackerXml.ashx?dir=A'
flightdata<-GET(url)

output<- content(flightdata, as="text") %>% fromJSON(flatten=FALSE) 

仅供参考:您可能需要查看此文件:
 “http://www.phl.org/Style%20Library/PHL/Scripts/Angular/iata-data.jsn”包含有关航空公司和机场缩写,名称和链接的信息。