如何在R中从一个URL下载多个jpeg文件?

ehxuflar  于 2023-04-27  发布在  其他
关注(0)|答案(1)|浏览(111)

我需要下载多个.jpg文件,文件名中有“*b13”在下面的URL中。有人可以帮助我如何列出文件名并将其下载到文件夹中吗?https://www.data.jma.go.jp/mscweb/data/himawari/list_ha2.html

install.packages("jpeg")
library(jpeg)
install.packages("here")
library(here)
myurl <- "https://www.data.jma.go.jp/mscweb/data/himawari/list_ha2.html"
for (i in 1:138) { 
myurl <- paste(myurl[i,1], sep = "")
z <- tempfile()
download.file(myurl,z,mode="wb")
pic <- readJPEG(z)
writeJPEG(pic,here("Q:\\R_himawari"), paste("image", "i", ".jpg") 
          file.remove(z)
                 }
pbossiut

pbossiut1#

您可以使用attribute = value CSS选择器通过子字符串“b13”选择感兴趣的href[href*=b13]针对包含字符“b13”的href属性。使用url_absolute()完成源图像文件的路径。然后下载这些文件。i可以来自循环,不应该是硬编码的字符串/字符“i”。

install.packages("jpeg")
library(jpeg)
install.packages("here")
#library(here)
library(magrittr)
library(rvest)

myurl <- "https://www.data.jma.go.jp/mscweb/data/himawari/list_ha2.html"

links <- read_html(myurl) %>%
  html_elements("table [href*=b13]") %>%
  html_attr("href") %>%
  url_absolute(myurl)

for (i in seq_along(links)) {
  z <- tempfile()
  download.file(links[i], z, mode = "wb")
  pic <- readJPEG(z)
  # writeJPEG(pic, paste0(Q:/R_himawari/", "image_", i, ".jpg")
  writeJPEG(pic, paste0("C:/Users/User/DestinationFolder", "/image_", i, ".jpg"))
  file.remove(z)
}

相关问题