Python:使用网址从Google驱动器下载文件

rkatkam:

我正在尝试从Google驱动器下载文件,我所拥有的只是驱动器的URL。

我已经阅读了有关API drive_service和的google API MedioIO,其中还需要一些凭据(主要是JSON file/OAuth)。但是我不知道它是如何工作的。

另外,尝试过urllib2.urlretrieve,但我的情况是从驱动器中获取文件。也尝试wget过,但没有用。

尝试过的PyDrive图书馆。它具有良好的驱动上传功能,但没有下载选项。

任何帮助将不胜感激。谢谢。

turdus-merula:

如果通过“驱动器的网址”表示Google云端硬盘上文件可共享链接,则以下内容可能会有所帮助:

import requests

def download_file_from_google_drive(id, destination):
    URL = "https://docs.google.com/uc?export=download"

    session = requests.Session()

    response = session.get(URL, params = { 'id' : id }, stream = True)
    token = get_confirm_token(response)

    if token:
        params = { 'id' : id, 'confirm' : token }
        response = session.get(URL, params = params, stream = True)

    save_response_content(response, destination)    

def get_confirm_token(response):
    for key, value in response.cookies.items():
        if key.startswith('download_warning'):
            return value

    return None

def save_response_content(response, destination):
    CHUNK_SIZE = 32768

    with open(destination, "wb") as f:
        for chunk in response.iter_content(CHUNK_SIZE):
            if chunk: # filter out keep-alive new chunks
                f.write(chunk)

if __name__ == "__main__":
    file_id = 'TAKE ID FROM SHAREABLE LINK'
    destination = 'DESTINATION FILE ON YOUR DISK'
    download_file_from_google_drive(file_id, destination)

不过,该片段不使用pydrive,也不使用Google Drive SDK。它使用了请求模块(以某种方式可以替代urllib2)。

从Google云端硬盘下载大文件时,单个GET请求是不够的。需要第二个- 从Google驱动器查看wget / curl大文件

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用wget从Google驱动器下载文件

python:如何使用api从Google驱动器下载文件

使用Dropbox网址android下载文件

使用没有Google API的C#从Google驱动器下载文件

如何使用C#从Google驱动器下载文件

如何使用v3 rest api从Google驱动器下载文件?

Google Drive API v3 .NET:如何让用户直接从Google驱动器而不是从服务器下载文件?

通过python禁用Google驱动器文件的下载选项

如何使用使用Python的驱动器API将文件上传到Google驱动器?

使用适用于PHP的SDK从Google驱动器下载zip文件

如何修复Android中的“在Google驱动器上下载文件存储”错误

使用beautifulsoup将文件下载到Google驱动器

使用Python下载文件-“未知的网址类型”

如何使用php将Google驱动器下载文件写入目录

下载Google驱动器文件而不与服务帐户共享

当我使用Java从Google驱动器下载文件时,出现符号

使用Android Studio中的Google Drive API从驱动器下载文件以上传到另一个驱动器

使用javascript和mvc3从Google驱动器下载文件

Google脚本,获取驱动器文件网址

当下载文件夹位于D:上时,Chrome使用C:驱动器上的空间进行下载。

谷歌驱动器的pydrive库未使用请求以请求的格式下载文件

网址不变时如何使用python下载文件

React-Native 从服务器下载文件并添加到谷歌驱动器

如何使用 DriveApi 从谷歌驱动器下载选定的文件?

PHP 使用外部磁盘驱动器下载文件

从网址下载文件?

Python:从谷歌驱动器查找和下载丢失的文件(使用可共享的链接)

使用 Python 从 Google Drive 下载文件

在 Python 中使用 aiohttp 上传 Google 驱动器文件