【问题标题】:htmlParse fails to load external entityhtmlParse 无法加载外部实体
【发布时间】:2014-06-19 06:43:18
【问题描述】:

我正在尝试使用 R 和 XML 包加载一些公开可用的 NHS 数据,但我不断收到以下错误消息:

错误:无法加载外部实体“http://www.england.nhs.uk/statistics/statistical-work-areas/bed-availability-and-occupancy/

尽管查看了一些相关问题,但我似乎无法弄清楚可能导致此问题的原因。

这是我非常简单的代码:

library("XML")
url <- "http://www.england.nhs.uk/statistics/statistical-work-areas/bed-availability-and-occupancy/"
doc <- htmlParse(url)

编辑:会话信息

R 版本 3.0.1 (2013-05-16) 平台:i386-w64-mingw32/i386(32 位)

语言环境:[1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 [3] LC_MONETARY=English_United Kingdom.1252 LC_NUMERIC=C [5] LC_TIME=English_United Kingdom.1252

附加的基础包:[1] stats graphics grDevices utils
数据集方法库

通过命名空间加载(未附加):[1] tools_3.0.1

【问题讨论】:

  • 这不是一个有效的 XML 文档:W3 Validator。它至少应该是 XHTML,HTML5 不是。
  • 当我在 Ubuntu 机器上运行代码时它成功,它也在 r-fiddle 上运行。请问可以添加 sessionInfo() 吗? r-fiddle.org/#/fiddle?id=AfoyOSGm
  • sessionInfo() 添加了!我怀疑我已经有了答案。这几乎可以肯定是由我的工作代理引起的。我之前遇到过这个问题(通过 QGIS),但从未找到令人满意的解决方案。
  • @Tumbledown,我遇到了同样的问题。然而,在我重新启动我的 R 会话后,它又工作了....很奇怪。

标签: xml r


【解决方案1】:

Package XML 有一些问题。问题是间歇性的,与 URL 无关。我使用 httr 包的 GET 函数解决了这个问题,以获取 html 代码,然后将其传递给 htmlParse,如下所示:

library("XML")
library(httr)
url <- "http://www.england.nhs.uk/statistics/statistical-work-areas/bed-availability-and-occupancy/"
doc <- htmlParse(rawToChar(GET(url)$content))

【讨论】:

    【解决方案2】:

    您还可以使用rvestxml2 包:

    library(rvest) # github version
    library(xml2)  # github version
    
    url <- "http://www.england.nhs.uk/statistics/statistical-work-areas/bed-availability-and-occupancy/"
    doc <- read_html(url)
    
    doc %>% 
      html_nodes("a[href^='http://www.england.nhs.uk/statistics/bed-availability-and-occupancy/']") %>% 
      html_attr("href")
    
    ## [1] "http://www.england.nhs.uk/statistics/bed-availability-and-occupancy/bed-data-overnight/"
    ## [2] "http://www.england.nhs.uk/statistics/bed-availability-and-occupancy/bed-data-day-only/" 
    

    【讨论】:

    • 第二组命令返回一组数据,而前一组命令返回的值无法轻松搜索。
    猜你喜欢
    • 2013-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2018-11-20
    相关资源
    最近更新 更多