从使用rvest存储在AWS上的网站下载pdf时出现问题
我正在尝试使用rvest
从this government webpage下载约500个单独的PDF提交。网站上的许多链接指向存储在单独AWS网站上的PDF文件(for example this document-请参阅“个人提交”部分的链接)。
当我下载PDF时,我无法打开它们。我不认为我实际上是从AWS网站下载链接的PDF文件。这些链接不包括.pdf文件类型(例如https://getinvolved.mdba.gov.au/22346/widgets/139364/documents/47013),我想我错过了下载实际PDF的步骤。
这里是一个可复制的示例
#load packages
library(tidyverse)
library(rvest)
library(polite)
# scrape PDF links and names
mdba_NB_url <- "https://getinvolved.mdba.gov.au/bp-amendments-submissions/widgets/139364/documents"
session <- bow(mdba_NB_url, force = TRUE) # from the polite package, identify and respect any explicit limits
NB_page <- scrape(session) # scrape the page contents
download_links <- tibble(link_names = NB_page %>% #download links
html_nodes("a")%>%
html_text(),
link_urls = NB_page %>%
html_nodes("a") %>%
html_attr('href'))
#filter PDFs
download_links_docs <- download_links %>%. #limit links to PDFs I need
filter(str_detect(link_names, "No. [0-9]"))
download_links_docs_subset <- download_links_docs %>%. #subset for test download
slice(c(1:10))
# Download PDFs
my_urls <- download_links_docs_subset$link_urls
save_here <- paste0(download_links_docs_subset$link_names, ".pdf")
mapply(download.file, my_urls, save_here, mode = "wb")
1条答案
按热度按时间gstyhher1#
链接确实以某种方式被重定向。但你可以相对容易地修复它。如果你在网络分析下载一个实际的文件时查看它,你只需要在你的url后面加上“/download”。
例如:
然后,您可以使用
httr
下载它们。download.file
似乎打乱了PDF编码。就像这样: