如何在Colaboratory上使用Selenium从单击事件下载文件?

2024-05-19 07:22:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从网站下载文件

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

但是,当我单击button.click()旁边的下载按钮时,该文件不会在Colaboratory上下载。(它适用于Juypyter笔记本电脑。)

我在谷歌上搜索,找到了一个解决方案。我应用解决方案的代码如下:

!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 path'吗?(但它不起作用。)

如果没有,如何使用Selenium on Colaboratory在单击事件中下载文件


Tags: 文件addget网站apt解决方案argument按钮
1条回答
网友
1楼 · 发布于 2024-05-19 07:22:03

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

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

首先运行此单元格,它将请求google drive许可,相应地完成此步骤,现在您可以使用google drive执行任何操作。现在它和我们本地的机器一样。如果您愿意,现在可以使用!cd <path>更改目录。我不知道你们是如何下载文件的,但现在它和本地机器一样。下载后,您可以在google drive提供的目录中访问这些文件

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

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

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

from google.colab import drive
drive.flush_and_unmount()

相关问题 更多 >

    热门问题