首页 > 解决方案 > 使用 R 列出 https 服务器上的文件

问题描述

我正在尝试列出 HTTPS 服务器上的文件(.laz 文件),然后下载它们。当我尝试获取 .laz 文件列表时,我收到警告消息:“XML 内容似乎不是 XML:”。

这是我的代码:

library(RCurl)
library(XML)

www <- "https://resources.gisdata.mn.gov/pub/data/elevation/lidar/county/chisago/laz/"

files <-  getHTMLLinks(www, xpQuery = "//a/@href['.laz'=substring(., string-length(.) - 3)]"
df1 <- data.frame(matrix(unlist(files), nrow=length(files), byrow=T))

也许这个问题与站点是 HTTPS 而不是 HTTP 有关?

谢谢你。

标签: rxml

解决方案


我无法解释错误getHTMLLinks正在产生。

这是一个带有 rvest 包的解决方案:

library(rvest)  #rvest verison 1.0.0
library(magrittr)

#read the page
www <- "https://resources.gisdata.mn.gov/pub/data/elevation/lidar/county/chisago/laz/"
page <- read_html(www)

#find the hrefs attributes which contain ".laz"
filenames <-html_elements(page, xpath = ".//a[contains(@href, '.laz')]") %>% html_text() 
links <- paste0(www, filenames)

推荐阅读