首页 > 解决方案 > html_nodes 在网站更新后不再提取表行

问题描述

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

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

我不知所措...使用 rNOMADS 作为后端的网站出现故障,我的用户正在向我发送电子邮件,我不知道如何解决这个问题。

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

标签: rxpathcss-selectorsrvestxml2

解决方案


我对此进行了尝试,我猜想从您之前使用 XML::htmlParse的帖子开始

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 导入而言,看起来您正在进行一些严肃的重构。


推荐阅读