当前位置: 首页 > 知识库问答 >
问题:

如何使用Selenium on Colaboratory从clicking event下载文件?

赫连睿
2023-03-14

我想从网站下载文件。

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

但是,当我通过<code>按钮单击下载按钮时。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()

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

我是否必须在prefs上键入“GoogleDrive路径”?(但它没起作用。)

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

共有1个答案

赵同
2023-03-14

是的,您必须键入GoogleDrive路径,但通常不会像您预期的那样。您必须首先装载/请求读取和写入文件的权限,使用:

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

首先运行这个单元,它将请求google drive许可,相应地完成这些步骤,现在你可以用google drive做任何事情。现在它和我们的本地机器一样。如果你想,那么你可以改变目录现在,使用<代码>!激光唱片

首先完全运行该单元,然后运行文件下载器单元。只是这样做应该适合你。

您可以访问此处以获取更多/详细信息。

编辑:保存
文件时,只需指定用于保存文件的Google云端硬盘路径即可。使用大型文件时,Colab 有时会异步同步虚拟机和云端硬盘。要强制同步,只需运行:

from google.colab import drive
drive.flush_and_unmount()
 类似资料:
  • 问题内容: 在我的应用程序中,在客户端创建了一个json对象。该对象被发布到HttpServlet,后者基于POST数据创建pdf文件。 该文件将发送回用户。调用成功函数,并记录流数据。但是,我想要下载该文件。 如何实现呢? 我的客户端代码: }); 然后servlet创建文件: 日志中的输出: 我的解决方案:* 有关指针,请参见http://www.particletree.com/notebo

  • 我正在使用Qt框架编写一个C应用程序,该应用程序需要从源锻造下载文件。 我必须下载这个文件https://sourceforge.net/projects/meshlab/files/updates/1.3.3/updates.xml 我使用Qt和QHttp类编写了以下代码: QHttp::设置主机和 QHttp::获取都不会阻止函数立即返回一个整数 ID。当 http 文件传输完成后,将自动调用

  • 问题内容: 我需要将文件从服务器下载到桌面。(UBUNTU 10.04)我没有Web访问服务器,只是ssh。 如果有帮助,我的操作系统是Mac OS X和iTerm 2作为终端。 问题答案: 在您的终端中,键入: 相应地替换用户名,主机,远程文件名和本地目录。 如果要访问EC2(或其他需要使用私钥进行身份验证的服务),请使用以下选项:

  • 问题内容: 我正在开发一个应用程序,为用户提供一个界面,用户可以在其中从我们的Google Cloud Storage下载文件。我编写了单元测试,可以连接到存储并下载了一个文件。 现在,我(几乎)完成了界面,我想测试整个应用程序。但是现在我注意到我并没有真正下载文件,而是下载了包含有关要下载文件的META数据的文件。就像是: 我想知道我在做什么错,这是我用来下载文件的代码: 问题答案: 如您所说,

  • 我在S3存储桶中有一个包含json文件的文件夹。我正在使用Spring Boot。用户提供和特定文件()名称。

  • 实际上我需要下载XLS文件从测试资源使用资源ID在java 谁能帮帮我吗 我尝试了下面的代码,但我遗漏了一些东西 上面的代码在 请帮忙 提前谢谢

  • 问题内容: 我正在尝试获取下载链接并下载文件。 我有一个包含以下链接的日志文件: 我有这样的代码: 到目前为止,我不知道如何获取下载链接并下载它。可以使用selenium下载文件吗? 问题答案: 根据文档,您应该配置为自动下载具有指定内容类型的文件。这是在txt文件中使用第一个URL的示例,该文件将文件保存在当前目录中: 注意,我也简化了xpath。