网站更新后html_nodes不再提取表行

时间:2018-12-24 03:54:11

标签: r xpath css-selectors rvest xml2

几年前,我在nomads.ncep.noaa.gov上寻求帮助,以搜寻可用的模型列表。 The solution is documented here.我将第一个答案添加到我的R包rNOMADS中,此后一直在使用它。但是,自从NCEP宣布他们将切换到https以来,该解决方案就失败了。我知道这不仅是因为切换,还因为其他https网站(例如imdb)仍然可抓取。

我怀疑他们实际上改变了网站的结构。我试图使用Selectorgadget来确定是否可以设置一个新的CSS选择器,但是没有运气。

我不知所措...使用rNOMADS作为后端的网站出现了故障,我的用户向我发送了电子邮件,并且我不确定如何解决该问题。

赞赏/迫切需要任何指导。

2 个答案:

答案 0 :(得分:0)

我做了个破解,我猜想开始的地方是使用XML :: htmlParse的your earlier post

library(XML)
library(dplyr)
library(rvest)
doc_http <- htmlParse("http://nomads.ncep.noaa.gov/")
doc_https <- htmlParse("https://nomads.ncep.noaa.gov/")

doc_http返回

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

后面是两个脚本,一个是长的Citrix脚本

doc_http仅返回

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"    "http://www.w3.org/TR/REC-html40/loose.dtd">
<html><body><p>https://nomads.ncep.noaa.gov/</p></body></html>

表示没有XML。因此,就RNomads html解析依赖于XML导入的程度而言,您似乎需要进行一些认真的重构。

答案 1 :(得分:0)

rNOMADS的所有功能都可以更改服务器URL。 在[NCEP.list.NOMADS-ftpprd]的电子邮件中说:

目前,只有以下网站URL进行了新更改以进行测试:

https://nomads-cprk.ncep.noaa.gov/

https://origin.ftp.ncep.noaa.gov/

新网址有效!