【问题标题】:How can I download a file from clicking event using Selenium on Colaboratory?如何使用 Colaboratory 上的 Selenium 从单击事件中下载文件?
【发布时间】:2021-07-21 03:09:59
【问题描述】:

我想从网站下载文件。

该网站有一个文件下载按钮。

但是当我点击button.click() 的下载按钮时,文件没有在 Colaboratory 上下载。 (它适用于 Juypyter Notebook。)

我用谷歌搜索并找到了解决方案。我应用该解决方案的代码如下:

!apt-get update
!apt install chromium-chromedriver
!cp /usr/lib/chromium-browser/chromedriver /usr/bin

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

# solution
prefs = {'download.default_directory' : "/some/path"}
options.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome('chromedriver',options=options)

# Download code
xpath = '''//*[@id="glopopd_excel"]/span'''
element_get_excel = driver.find_element_by_xpath(xpath).click()

但我在任何地方都找不到下载的文件。

我必须在首选项上输入'GoogleDrive path' 吗? (但它没有用。)

如果没有,我如何在 Colaboratory 上使用 Selenium 下载点击事件中的文件?

【问题讨论】:

    标签: python selenium selenium-chromedriver google-colaboratory


    【解决方案1】:

    是的,您必须键入 GoogleDrive 路径,但不是正常情况,正如您所期望的那样。您必须先挂载/请求读取和写入文件的权限,使用:

    from google.colab import drive
    drive.mount('/content/gdrive')
    

    首先运行这个单元格,它会询问谷歌驱动器的权限,相应地完成这个步骤,现在你可以用谷歌驱动器做任何事情了。现在它与我们的本地机器相同。如果您愿意,现在可以使用!cd <path> 更改目录。我不知道您是如何尝试下载文件的,但现在它与本地计算机相同。下载后,您可以在谷歌驱动器提供的目录中访问这些文件。

    首先完全运行该单元,然后运行您的文件下载器单元。这样做应该对你有用。

    您可以访问here了解更多/详细信息。

    编辑
    保存文件时,只需指定保存文件的 Google Drive 路径。使用大文件时,Colab 有时会异步同步 VM 和 Drive。要强制同步,只需运行:

    from google.colab import drive
    drive.flush_and_unmount()
    

    【讨论】:

    • 感谢您的关注。我在“download.default_directory”上键入“/content/drive/Mydrive”。但它不起作用:(我也用谷歌搜索了 ,但找不到答案。我做错了什么?
    • 你能告诉我,你是如何下载文件/代码的吗?
    • 我不知道我是否正确理解了您的评论,该网站有一个下载按钮。当我单击此按钮时,将下载 xlxs 文件。下载代码如下;
    • 1. xpath = '''//*[@id="glopopd_excel"]/span''' 2. element_get_excel = driver.find_element_by_xpath(xpath).click()
    • 请提供所有详细信息,例如 My_local_Download_path 值,您安装的位置。或者,如果它仅将文件保存在 colab 目录中。你也可以检查一下。
    猜你喜欢
    • 2022-01-16
    • 2013-08-28
    • 2019-05-21
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多