r - html_nodes 在网站更新后不再提取表行
问题描述
几年前,我在 nomads.ncep.noaa.gov 上寻求帮助来抓取可用的模型列表。 该解决方案记录在此处。 我将第一个答案添加到我的 R 包rNOMADS中,并且从那以后一直在使用它。然而,自从 NCEP 宣布他们将切换到 https 之后,解决方案就失败了。我知道这不仅仅是因为切换,因为其他 https 站点(如 imdb)仍然可以抓取。
我怀疑他们实际上改变了网站的结构。我尝试使用 Selectorgadget 来确定是否可以设置一个新的 css 选择器,但没有运气。
我不知所措...使用 rNOMADS 作为后端的网站出现故障,我的用户正在向我发送电子邮件,我不知道如何解决这个问题。
任何指导表示赞赏/迫切需要。
解决方案
我对此进行了尝试,我猜想从您之前使用 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 导入而言,看起来您正在进行一些严肃的重构。
推荐阅读
- flutter-cupertino - Flutter CupertinoTabBar:无法通过流事件上的索引切换到选项卡
- java - 使用 WebClient 发送请求时重试“阻止”其他订阅者
- java - 领域驱动设计——每个实体都应该有指导吗?
- python - 如何通过变量将参数传递给函数?
- optix - OptiX 无法以足够的权限打开磁盘缓存
- react-native - 编辑 FlatList 的每个项目的状态
- python - 将 LXML 与 Html、Requests 和 ETree 一起使用,它会提供链接,但不会让我搜索特定文本的链接
- sql - 如何在 crudRepository 中创建方法以使用列表 ID 查找任何元素?
- java - 连接到 Mqtt 在线代理时出现 NullPointerException
- python - 如何在不关闭 Selenium 控制的浏览器的情况下接受键盘中断