- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试使用两种不同的方法(xmlParse 和 httr::GET)请求一个 XML 文档,并期望得到相同的响应。我使用 xmlParse 得到的响应是我所期望的,但是使用 httr::GET 我的请求 URL 在某些时候被截断了。
一个例子:
require(httr)
require(XML)
require(rvest)
term <- "alopecia areata"
request <- paste0("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/egquery.fcgi?term=",term)
#requesting URL with XML
xml_response <- xmlParse(request)
xml_response %>%
xml_nodes(xpath = "//Result/Term") %>%
xml_text
这应该返回
[1] "alopecia areata"
现在是 httr
httr_response <- GET(request)
httr_content <- content(httr_response)
httr_content %>%
xml_nodes(xpath = "//Result/Term") %>%
xml_text
返回
[1] "alopecia"
有趣的是:如果我们检查所请求 URL 的 httr_response 元素,它是正确的。只有响应是错误的。
> httr_response$request$opts$url
[1] "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/egquery.fcgi?term=alopecia areata"
> httr_response$url
[1] "http://eutils.ncbi.nlm.nih.gov/gquery?term=alopecia&retmode=xml"
所以在某些时候我的查询词被截断了。如果手动将整个请求放入浏览器,它会按预期运行。
如有任何解决此问题的建议,我们将不胜感激。
最佳答案
您可以尝试用 +
替换您的 URL 中的空格以防止它被截断:
httr_response <- GET(gsub(" ","+",request))
httr_content <- content(httr_response)
httr_content %>%
xml_nodes(xpath = "//Result/Term") %>%
xml_text
#[1] "alopecia areata"
有关空间和 URL 的更多信息 here
关于xml - URL 被 httr::GET 与 xmlParse 截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28780985/
我尝试使用 RSelenium 打开远程驱动程序,但我一直面临着与 Docker 相同的问题。 在 Docker 中我运行 $ docker run -d -p 4445:4444 selenium/
下面的代码在交互模式下工作正常,但在函数中使用时失败。非常简单的两个身份验证 POST命令后跟数据下载。我的目标是让它在一个函数中工作,而不仅仅是在交互模式下。 这个问题有点像 this questi
在 python我用requests通过以下方式调用 API(遗憾的是无法共享 API 本身,因此很难重现): import requests url = url headers = {'API-ke
我正在尝试使用 httr 构建 POST json 请求。 API 文档提出了以下 CURL 请求: curl -X POST -H "Authorization:Token XXXXXXXXX" -
我正在尝试获得 that form 的结果与 httr . 看了form results ,我尝试了以下方法: library(httr) library(stringr) r = str_c("ht
我在 AWS“Ubuntu Server 12.04.2 LTS”上运行 R Studio 并通过浏览器访问 R Studio。 当我尝试使用包 ROAuth 在 Twitter API 上进行身份验
这个 curl 调用用于在 Digital Ocean 上创建一个新的 droplet curl -X POST "https://api.digitalocean.com/v2/droplets"
我想抓取这个website , 并从表中获取数据。 我使用httr包中的GET,代码如下: url \r\n\t\r\n\t\t中华人民共和国环境保护部--政府网站数据中心\r\n\t\t使用 fil
我想在 url 中传递几个 post 参数,比如两个参数 p1 和 p2。 p1 和 p2 的值为 xyz(字符串)和 1(数字)。以下命令之间有什么区别: POST(url, body=list(p
我在从以下网站提取数据时遇到问题。如果我通过浏览器访问 long_url,我可以看到我想要抓取的表格,但是如果我使用 httr 从 R 中调用 url,我要么没有将数据返回给我,要么我不明白如何它正在
我正在尝试通过美国人口普查地理编码器对一组地址进行批量地理编码:http://geocoding.geo.census.gov/geocoder/ 我发现了这个问题: Posting to and R
我正在使用 R 调用 Cybersource API。当我使用 GET 请求时,我获得了 200 的成功响应。当我读取响应的主体而不是取回 csv 数据时,我得到了 csv 文件路径的路径。我想知
我需要使用不同的“ key ”访问同一个网页以获取它提供的特定内容。 我有一个键列表 x我使用 GET来自 httr 的命令包访问网页,然后检索我需要的信息y . library(httr) libr
在 MS Windows 上尝试通过 httr::GET() 调用中的 httr::user_agent 更改用户代理时,有什么特别需要考虑的吗?我使用的是 R-3.1.0 和 httr 0.3。 按
我想在使用 R httr 包的请求中设置 header ,当我在变量中有 header 的名称时设置 header 。 我想做这样的事情: tokenName = 'X-Auth-Token' get
我正在尝试以编程方式下载文件,例如 this从 ftp。 主页公开提供用户名(“fire”)和密码(“burnt”),我可以从浏览器下载文件没有问题。 当我尝试使用 httr::GET() 在 R 中
我正在尝试使用 httr 下载 1.1 GB 的文件,但遇到以下错误: x sessionInfo() R version 3.0.0 (2013-04-03) Platform: i386-w64
我想这是一些非常简单的 curl 代码,我正试图将其转换为 httr 格式。 curl -X POST \ --user ':' \ --header 'user-key: ' \ --u
我陷入了一个关于 CURL 和 SSL 的错误中,我不知道发生了什么。 我已经更新了所有可能的包,并成功地从其他 HTTPS 请求中获得了响应。我在 Windows 7 和 10 上试过。 这段代码有
免责声明:虽然我已经设法使用 httr 的 POST 函数从另一个来源获取数据,但请大家知道,我在 httr 和 HTML 表单方面是个十足的菜鸟。 我想使用 httr 从网站直接将一些数据导入 R。
我是一名优秀的程序员,十分优秀!