【发布时间】:2014-10-01 20:08:29
【问题描述】:
我正在尝试获取使用 Google 云端硬盘公共文件夹共享的 RAIS(巴西员工注册表数据集)的数据。这是地址: https://drive.google.com/folderview?id=0ByKsqUnItyBhZmNwaXpnNXBHMzQ&usp=sharing&tid=0ByKsqUnItyBhU2RmdUloTnJGRGM#list
数据每年被划分到一个文件夹中,每个文件夹中的每个州都有一个文件可供下载。我想自动化 R 中的下载过程,所有年份,如果不是至少在每年的文件夹中。下载的文件名应遵循手动下载时出现的文件名。
A 会一点 R,但不会 Web 编程或 Web 抓取。这就是我到目前为止得到的: 通过手动下载 2012 文件的第一个文件,我可以看到我的浏览器用来下载的 URL: https://drive.google.com/uc?id=0ByKsqUnItyBhS2RQdFJ2Q0RrN0k&export=download
因此,我想文件 id 是:0ByKsqUnItyBhS2RQdFJ2Q0RrN0k
搜索 2012 页面的 html 代码,我找到了该 ID 和与之关联的文件名:AC2012.7z。 所有其他 id 和文件名都在 html 代码的该部分中。所以,假设我可以正确下载文件,我想我至少可以概括其他文件。
在 R 中,我尝试了流式代码来下载文件:
url <- "https://drive.google.com/uc?id=0ByKsqUnItyBhS2RQdFJ2Q0RrN0k&export=download"
download.file(url,"AC2012.7z")
unzip("AC2012.7z")
它确实下载了,但尝试解压缩文件时出现错误(在 R 中和使用 7.zip 手动解压) 在 R 中下载的文件一定有问题,因为文件大小 (3.412Kb) 没有匹配我从手动下载文件中得到的 (3.399Kb)
【问题讨论】:
-
@jdharrison:tks。这里有点不同,因为主文件夹是公共的,而 RGoogleDocs 上的文档没有提到这一点。不过我会看代码来看看。
-
为什么不将整个文件夹复制到自己的驱动器中,然后批量下载文件?
-
@user3616725:不,我正在尝试将其包装在一个函数中,以便轻松下载和使用这些数据。所以我不能假设用户有谷歌帐户
-
@LucasMation 你找到解决办法了吗?
标签: r download google-drive-api