我想从网站下载文件。
该网站有一个文件下载按钮。
但当我点击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()
但我在任何地方都找不到下载的文件。
我必须在prefs上键入'GoogleDrive path'
吗?(但没用。(
如果没有,我如何在Colaboratory上使用Selenium下载点击事件的文件?
是的,您必须键入GoogleDrive路径,但不是正常情况下,正如您所期望的那样。您必须首先装载/请求读取和写入文件的权限,使用:
from google.colab import drive
drive.mount('/content/gdrive')
首先运行这个单元格,它会请求谷歌驱动器权限,相应地完成这些步骤,现在你可以用谷歌驱动器做任何事情。现在它和我们的本地机器一样。如果您愿意,现在可以使用!cd <path>
更改目录。我不知道你们是如何下载文件的,但现在它和本地机器是一样的。下载后,您可以访问谷歌驱动器提供的目录中的这些文件。
首先完全运行该单元格,然后运行文件下载单元格。这样做应该对你有用。
您可以访问此处了解更多/详细信息。
编辑:
保存文件时,只需指定保存文件的Google Drive路径即可。当使用大文件时,Colab有时会异步同步VM和驱动器。要强制同步,只需运行:
from google.colab import drive
drive.flush_and_unmount()