当前位置: 首页 > 面试题库 >

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

徐秋月
2023-03-14
问题内容

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

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

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

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

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


问题答案:

如果用“驱动器的网址”表示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 的替代)。



 类似资料:
  • 我对谷歌驱动器有问题。 链接前: 工作很好,直到现在:-(但现在它不再工作了。结果没有找到错误404,但文件存在。我可以上传文件和轻松构建下载URL。 例如,公共文档。 我如何才能下载未经授权的文件,我需要直接链接。 谢谢!!!

  • 我正在尝试下载文件从谷歌驱动器和所有我有驱动器的URL。 我读过关于google API的文章,其中谈到了一些和,这也需要一些凭据(主要是JSON)。但我不知道它是如何运作的。 此外,尝试了,但我的情况是从驱动器中获取文件。也尝试了,但没有用。 已尝试库。它有很好的上传功能驱动,但没有下载选项。 任何帮助都将不胜感激。多谢了。

  • 上面的代码在colab中调用,使用: 文件夹已正确创建。但是它不是将500MB+zip文件下载到checkpoints文件夹,而是从下载确认页面下载html。在日志记录中,该脚本似乎每次都提取一个新的下载确认字符串,这通常应该强制Google Drive在没有病毒扫描的情况下下载:

  • 问题内容: 我正在创建一个程序,通过读取同一游戏/应用程序的.jad文件中指定的URL,该程序将从Web服务器下载.jar(java)文件。我正在使用Python 3.2.1 我设法从JAD文件中提取JAR文件的URL(每个JAD文件都包含指向JAR文件的URL),但是正如您所想象的,提取的值是type()字符串。 相关功能如下: 但是,我总是得到一个错误,指出上面函数中的类型必须是字节,而不是字

  • 我尝试的是下面的,但不是工作 从谷歌REST链接,它显示的例子如下,如何运行这个?

  • 文件大小为13 GB tar。日志文件如下所示: