R XML 解析网址

2023-12-10

我正在尝试下载天气数据,类似于此处提出的问题:如何将XML解析为R数据帧但是当我运行示例中的第一行时,我收到“错误:1:无法加载 HTTP 资源”。我已检查该 URL 是否有效。这是我指的行:

data <- xmlParse("http://forecast.weather.gov/MapClick.php?lat=29.803&lon=-82.411&FcstType=digitalDWML")

我设法找到了以下解决方法,但想了解为什么第一行不起作用。

testfile <- "G:/Self Improvement/R Working Directory/test.xml"
url <- "http://forecast.weather.gov/MapClick.php?lat=29.803&lon=-82.411&FcstType=digitalDWML"
download.file(url, testfile, mode="wb") # get data into test
data <- xmlParse(testfile)

感谢任何见解。


您可以通过设置 UserAgent 来下载文件,如下所示:

require(httr)
UA <- "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2227.0 Safari/537.36"
my_url <- "http://forecast.weather.gov/MapClick.php?lat=29.803&lon=-82.411&FcstType=digitalDWML"
doc <- GET(my_url, user_agent(UA))

现在看看content(doc, "text")看看它是你在浏览器中看到的文件

然后你可以通过解析它XML or xml2。我发现xml2更容易,但这只是我的口味。两者都有效。

data <- XML::xmlParse(content(doc, "text"))
data2 <- xml2::read_xml(content(doc, "text"))

为什么我必须使用用户代理?
来自 RCurl 常见问题解答:http://www.omegahat.org/RCurl/FAQ.html

为什么 RCurl 不为某些网站所需的用户代理提供默认值?
这是一个哲学问题。首先,libcurl 没有指定默认值,它是其他人构建应用程序的框架。同样,RCurl 是 R 程序员创建应用程序以发出“Web”请求的通用框架。因此,我们也不设置用户代理。我们希望 R 程序员能够做到这一点。在 R 包中使用 RCurl 向站点发出请求的 R 程序员应使用包名称(以及 R 的版本)作为用户代理,并在所有请求中指定这一点。
基本上,我们希望其他人为 useragent 指定一个有意义的值,以便他们正确地识别自己。

请注意,用户(不推荐程序员)可以通过 R 的 option() 函数设置名为 RCurlOptions 的 R 选项。该值应该是命名的curl 选项的列表。这在每个 RCurl 请求中使用,将这些值与调用中指定的值合并。这允许提供默认值。

我猜测http://forecast.weather.gov/拒绝所有没有 UserAgent 的请求。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

R XML 解析网址 的相关文章

  • 对 data.table 中的列表列执行操作

    假设我有一个data table 例如dt lt data table foo list 1 3 4 6 bar c 2 7 如何使用 dt 框架对 foo 向量列表执行操作 操作可能是将 bar 添加到 foo 返回列表 3 5 11 1
  • R 中按时间划分的平均值

    我每秒测量一次化合物浓度 我想求 30 秒和 60 秒的平均值 我一直在阅读这里的帖子 我尝试过lubridate and dplyr 但没有运气 我正在努力完成这项工作 但我一直没能做到 我正在从 SAS 过渡到 R 所以请耐心等待 这是
  • 将第 N 行上的 NA 行插入 data.frames 列表,其中 N 来自列表

    经过几个小时后 我发现自己无法解决以下问题 我有一个数据框列表 我想分别向每个 DF 插入 而不是替换 一行或多行 NA 始终至少一行 要插入的 NA 数量存储在单独的列表中 为了说明这一点 我有以下两个列表 list of datafra
  • 如何添加链接以从我的 R闪亮应用程序在新窗口中打开 pdf 文件?

    我可以使用 a 从我的 Shiny 应用程序添加到外部站点的超链接 a google href http www google com 但如何创建一个链接来打开 pdf 或类似 文件 看起来应该很简单 但我找不到任何例子 我的问题与此类似
  • 无法更新/编辑从 R 中的包(`gratia`)导出的 ggplot2 对象

    我希望我在这里遗漏了一些令人痛苦的明显的东西 我希望更新 例如 修复标题 实验室等 由 生成的 ggplot 对象gratia draw 不太确定为什么我无法更新该对象 有一个简单的解决方案吗 devtools install github
  • 在 R 传单中添加不透明度滑块

    如何在 R leaflet 应用程序中添加滑块来控制特定图层的不透明度 对于这个应用程序 我不想使用闪亮 这里建议 在 R 传单应用程序中添加滑块 https stackoverflow com questions 37682619 add
  • 为什么数据帧上的 is.vector 不返回 TRUE?

    tl dr R 中的向量到底是什么 长版 R 中很多东西都是向量 例如 数字是长度为 1 的数值向量 is vector 1 1 TRUE 列表也是一个向量 is vector list 1 1 TRUE 好的 所以列表是一个向量 显然 数
  • 使用officer R导出时如何提高ggplots的分辨率

    我想将图表导出到 PPT 并使用Officer 包来实现相同的目的 但是 图表的默认分辨率较低 我想更改它 我目前正在使用以下电话 ph with gg p1 type chart res 1200 其中 p1 是 ggplot 对象 运行
  • 访问或解析 R 中的 summary() 中的元素

    我运行以下 R 命令来进行 Dunnett 测试并获取摘要 如何访问下面线性假设的每一行 这是摘要输出的一部分 基本上我不知道摘要的结构 我尝试使用名称 但它似乎不起作用 因为我没有看到任何命名属性来提供这一点 library multco
  • 警告消息 - 来自 dummies 包的 dummy

    我正在使用 dummies 包为分类变量生成虚拟变量 其中一些变量具有两个以上类别 testdf lt data frame A as factor c 1 2 2 3 3 1 B c A B A B C C C c D D E D D E
  • 将列表中的每个元素转换为数据框中的一列

    假设我有以下列表 d library combinat d permn c a b c 这看起来如下 1 1 a b c 2 1 a c b 3 1 c a b 4 1 c b a 5 1 b c a 6 1 b a c 是否可以将此列表的
  • R ggplot 中的柯尔莫哥洛夫-斯米尔诺夫图

    我正在尝试在 r 中绘制 KS 图 一切似乎都很顺利 除了我只能使用颜色来可视化两个不同的样本而不是线型这一事实 我已经尝试过以下方法 sample1 lt SD13009 sample2 lt SD13009PB group lt c r
  • 更新 R6 对象实例中的方法定义

    如何更新 R6 类实例的方法定义 正如我所期望的 S3 使用当前的方法定义 对于 R5 参考类 我可以使用 myInstance myInstance copy 在 R6 中 我尝试了 myInstance myInstance clone
  • 如何声明包含 M 个元素的列表对象

    我想声明一个包含 M 3 x 3 矩阵的列表 如果我事先知道数字 M 那么我可以通过以下方式声明这样的列表 elm lt matrix NA 3 3 Say M 7 myList lt list elm elm elm elm elm el
  • R,使用具有两种以上可能性的二项式分布

    我知道这可能是基本的 但我似乎有一个心理障碍 假设您想要计算在一个骰子上掷出 4 5 或 6 的概率 在 R 中 这很简单 sum 1 6 1 6 1 6 这给出了 1 2 这是正确答案 然而 我内心深处 可能应该保留的地方 认为我应该能够
  • 在ggplot中设置y轴中断

    我在代码中设置中断时遇到困难 我尝试添加breaks seq 0 100 by 20 但似乎无法让它正常工作 本质上我希望 Y 轴从 0 到 100 每 20 个刻度一次 YearlyCI lt read table header T te
  • R:按组,测试一个变量的每个值是否存在于另一个变量中

    我有一个数据框架 结构如下 a lt c 1 1 1 2 2 2 3 3 3 3 4 4 b lt c 1 2 3 1 2 3 1 2 3 4 1 2 c lt c NA NA 2 NA 1 1 NA NA 1 1 NA NA df lt
  • 当将遗传算法与 lme4 一起使用时,glmulti 无限期运行

    我在 R 中使用 glmulti 进行模型平均 我的模型中有大约 10 个变量 使得详尽的筛选不切实际 因此我需要使用遗传算法 GA 调用 method g 我需要包含随机效应 因此我使用 glmulti 作为 lme4 的包装器 此处提供
  • ggplot:如何限制条形图中的输出,以便仅显示最频繁出现的情况?

    我几个小时以来一直在寻找这个简单的东西 但没有结果 我有一个数据框 其中一列为变量 国家 地区 我想要两件事以下 绘制最常见的国家 地区 最常见的位于顶部 找到部分解决方案EDIT找到完整的解决方案 gt gt 重点问题是根据频率限制条形图
  • case_when 与部分字符串匹配和 contains()

    我正在使用一个数据集 其中有许多名为 status1 status2 等的列 在这些列中 它表示某人是否豁免 完整 注册等 不幸的是 豁免投入并不一致 这是一个示例 library dplyr problem lt tibble perso

随机推荐

  • 使用 PHP 递归获取最新文件

    我正在寻找递归列出目录中五个最新文件的代码 这是非递归代码 如果它是递归的 那么对我来说将是完美的
  • 如何在客户端生成/打印报告

    我想知道 是否可以在客户端生成并打印报告 例如使用 jasper 报告 他们必须安装 jasper reports 和 java 我想你可以将一个小程序推送给客户端 其中包含所有必要的罐子和东西 你为什么要这样做
  • 在 eclipse 项目中使用西里尔文 .properties 文件

    我正在开发一个小项目 我想为其使用国际化 问题是 当我尝试使用内部带有西里尔字母符号的 properties 文件时 文本显示为垃圾 当我对字符串进行硬编码时 它显示得很好 这是我的代码 ResourceBundle labels Reso
  • X509Certificate2 构造函数抛出磁盘空间不足

    突然之间 无需部署或进行任何其他环境更改 我们就得到了 磁盘空间不足 在 System Security Cryptography CryptographicException ThrowCryptographicException msc
  • gdb无法调用函数

    我在调试我的应用程序时遇到一些问题 当我尝试从 gdb shell 调用 parser extractString 时 它返回 名称空间 parser 中没有符号 extractString 当我执行时 信息函数 extractString
  • Java slick,html找不到AppletLoader

    我使用基于 slick 状态的游戏制作了一个 java 游戏 因为我的游戏扩展了 StatBasedGame 它不是一个真正的小程序 因为它不扩展 JApplet 所以为了解决这个问题 有一个使用 slick 内置的方法 可以在 html
  • java.sql.SQLException: ORA-00936: 缺少表达式

    下面我正在创建表格 public static final String CREATE SQL CREATE TABLE DATABASE TABLE ID number 10 0 CGUID VARCHAR 255 PGUID VARCH
  • 自动压缩mongodb中删除的空间?

    mongodb文档说 要压缩此空间 请从 mongo shell 运行 db repairDatabase 请注意 此操作会阻塞并且速度很慢 in http www mongodb org display DOCS Excessive Di
  • 为什么 Task.WhenAll 上的等待不抛出 AggregateException?

    在此代码中 private async void button1 Click object sender EventArgs e try await Task WhenAll DoLongThingAsyncEx1 DoLongThingA
  • 最大填充袋子的算法(这不是背包0/1)

    我正在处理一些任务 需要我解决以下算法问题 You Have collection of items their weights w1 w2 wn And You have a bag which weight is W It is Nee
  • 将值从一个脚本返回到另一脚本

    我有以下脚本将 顺序 运行目录中的每个脚本 import os directory for dirpath dirnames filenames in os walk path to scripts for filename in f fo
  • 不使用 Invoke-Expression 扩展字符串

    想象一下下面的代码 Script Start WelcomeMessage Hello UserName today is Date DayOfWeek 100 lines of other functions and what not f
  • MATLAB/Octave:从图像中切出很多圆圈

    我有一个矩阵 图像 和有关圆圈内有趣部分的信息 给出中心坐标和半径 我想剪掉所有的圆 矩阵的一部分 以便对每个圆进行更多计算 或者至少我想要一个带有所有圆圈的位掩码 我使用 Octave 但也可以使用 MATLAB 但由于许可证问题 这会很
  • 验证失败,但无法在 DataGridView 中删除

    这是我的 DataGridView 的 RowValidation 函数 DataGridViewRow row viewApplications Rows e RowIndex if row Cells colApplyTo Index
  • 如何从两个 Openshift 应用程序访问 MongoDB 数据库?

    我希望能够从 2 个 Openshift 应用程序访问我的 MongoDB 数据库 一个应用程序是通过浏览器的交互式数据库维护应用程序 另一个是通过 Openshift 应用程序在移动设备上运行的主要 Web 应用程序 正如我在 Opens
  • 通过 Java lib Apache Commons 上传文件的简明示例

    编辑 我已经删除了我的复杂且严重畸形的问题 这样它就不会影响下面非常简洁和正确的答案 考虑到找到一个在线示例来完成这项极其常见的任务非常困难 令人惊讶 我希望 Yoni 的回答能得到更多支持 所以 简而言之 这个问题 如何使用 Apache
  • Firebase 已获得 FedRAMP 授权?

    我使用 Firebase 作为后端 我看到谷歌服务已获得FedRAMP授权 并且firebase已与谷歌云集成使用 那么firebase也获得了FedRAMP的授权吗 如果没有 有什么办法可以在firebase中获得FedRAMP授权吗 T
  • 使用 PHPExcel 从 Excel 读取数字时出现问题

    我正在尝试使用 PHPExcel 从 Excelsheet 中读取数字 我读取数据的代码 objReader PHPExcel IOFactory createReaderForFile upload file objReader PHPE
  • 带原始数据的 Volley 请求

    在我的应用程序中 我必须使用 JSON req param 发送 POST 请求 我尝试使用 Postman Rest Client 创建请求 它工作正常 但无法使用下面的代码 在作为原始数据发送的 Postman req 参数中 但我不确
  • R XML 解析网址

    我正在尝试下载天气数据 类似于此处提出的问题 如何将XML解析为R数据帧但是当我运行示例中的第一行时 我收到 错误 1 无法加载 HTTP 资源 我已检查该 URL 是否有效 这是我指的行 data lt xmlParse http for