que*_*arc 3 url r concatenation web-scraping
这里有新成员.试图从R中的网站下载大量文件(但也可以打开建议,例如wget.)
从这篇文章中,我了解到我必须使用所需的URL创建一个向量.我最初的问题是写这个载体,因为我在每个州有27个州和34个机构.我必须为所有州的每个机构下载一个文件.虽然州代码总是两个字符,但代理商代码长度为2到7个字符.网址如下所示:
http://website.gov/xx_yyyyyyy.zip
Run Code Online (Sandbox Code Playgroud)
xx状态代码和yyyyyyy代理商代码在哪里,长度在2到7个字符之间.我迷失了如何构建一个这样的循环.
我假设我可以使用以下函数下载此URL列表:
for(i in 1:length(url)){
download.file(urls, destinations, mode="wb")}
Run Code Online (Sandbox Code Playgroud)
那有意义吗?
(免责声明:此帖子的早期版本已提前上传但不完整.我的错误,抱歉!)
这将分批下载并利用更快的同步下载功能(download.file()如果libcurl您的R安装选项可用):
library(purrr)
states <- state.abb[1:27]
agencies <- c("AID", "AMBC", "AMTRAK", "APHIS", "ATF", "BBG", "DOJ", "DOT",
"BIA", "BLM", "BOP", "CBFO", "CBP", "CCR", "CEQ", "CFTC", "CIA",
"CIS", "CMS", "CNS", "CO", "CPSC", "CRIM", "CRT", "CSB", "CSOSA",
"DA", "DEA", "DHS", "DIA", "DNFSB", "DOC", "DOD", "DOE", "DOI")
walk(states, function(x) {
map(x, ~sprintf("http://website.gov/%s_%s.zip", ., agencies)) %>%
flatten_chr() -> urls
download.file(urls, basename(urls), method="libcurl")
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1052 次 |
| 最近记录: |