簡體   English   中英

使用 Windows 10 下載在線文件夾

[英]Download an online folder with Windows 10

我希望在我的Dell筆記本電腦上使用Windows 10下載在線folder 在此示例中,我希望下載的folder名為Targetfolder 我正在嘗試使用Command Window ,但也想知道R中是否有簡單的解決方案。 我在這篇文章的底部添加了一張圖片,顯示了目標folder 我應該補充一點, Targetfolder包括一個文件和多個包含文件的子文件夾。 並非所有文件都具有相同的擴展名。 另外,請注意這是一個假設站點。 我不想包括隱私問題的真實網站。

編輯

這是一個真實的網站,可以作為一個功能性的、可重現的例子。 文件夾rel2020可以代替假設的Targetfolder

https://www2.census.gov/geo/docs/maps-data/data/rel2020/

這里的答案似乎都不適用於Targetfolder

如何下載包含在線文件/文件夾列表中的所有文件和子目錄的 HTTP 目錄?

以下是我根據上面鏈接中發布的答案的嘗試以及我獲得的結果:

嘗試一

lftp -c 'mirror --parallel=300 https://www.examplengo.org/datadisk/examplefolder/userdirs/user3/Targetfolder/ ;exit'

回來:

lftp is not recognized as an internal or external command, operable program or batch file.

嘗試二

wget -r -np -nH --cut-dirs=3 -R index.html https://www.examplengo.org/datadisk/examplefolder/userdirs/user3/Targetfolder/

回來:

wget is not recognized as an internal or external command, operable program or batch file.

嘗試三

https://sourceforge.net/projects/visualwget/files/latest/download

VisualWgeturl旁邊返回Unsupported scheme

在此處輸入圖像描述

這是使用httrrvest包的方法。
首先從鏈接中獲取文件所在的文件夾。
然后使用Map遍歷文件夾,獲取文件名並在lapply循環中下載它們。
如果出現超時條件等錯誤,它們將被困在tryCatch中。 最后的代碼行將告訴您是否以及在哪里出現錯誤。

注意:我只從folders[1:2]下載,在下面的Map中將其更改為folders

suppressPackageStartupMessages({
  library(httr)
  library(rvest)
  library(dplyr)
})

link <- "https://www2.census.gov/geo/docs/maps-data/data/rel2020/"

page <- read_html(link)

folders <- page %>%
  html_elements("a") %>%
  html_attr("href") %>%
  .[8:14] %>%
  paste0(link, .)

files_txt <- Map(\(x) {
  x %>%
    read_html() %>%
    html_elements("a") %>%
    html_attr("href") %>%
    grep("\\.txt$", ., value = TRUE) %>%
    paste0(x, .) %>%
    lapply(\(y) {
      tryCatch(
        download.file(y, destfile = file.path("~/Temp", basename(y))),
        error = function(e) e
      )
    })
}, folders[1:2])

err <- sapply(unlist(files_txt, recursive = FALSE), inherits, "error")
lapply(unlist(files_txt, recursive = FALSE)[err], simpleError)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM