python selenium获取下载的文件名
时间: 2023-10-20 13:55:26 浏览: 95
你可以通过使用 Selenium 和 Python 来获取下载的文件名。首先,你需要设置浏览器的下载路径,确保文件下载时会保存到指定的位置。然后,你可以使用 Selenium 的相关方法来模拟点击下载按钮或链接。接下来,你可以使用 Python 的文件操作函数来获取最新下载的文件名。
下面是一个示例代码:
```python
from selenium import webdriver
import os
import time
# 设置下载路径
download_path = "/path/to/download/folder"
# 配置 Chrome 浏览器参数
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless") # 无头模式,可选
chrome_options.add_argument("--disable-gpu") # 禁用 GPU 加速,可选
chrome_options.add_argument("--no-sandbox") # 解决 Linux 下运行问题,可选
chrome_options.add_argument("--disable-dev-shm-usage") # 解决 Linux 下运行问题,可选
chrome_options.add_argument("--disable-extensions") # 禁用扩展,可选
chrome_options.add_experimental_option("prefs", {
"download.default_directory": download_path,
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
})
# 创建 Chrome 浏览器实例
driver = webdriver.Chrome(options=chrome_options)
# 打开网页或执行其他操作
# 模拟点击下载按钮或链接
download_button = driver.find_element_by_id("download-button")
download_button.click()
# 等待一段时间,确保文件下载完成
time.sleep(5)
# 获取最新下载的文件名
list_of_files = os.listdir(download_path)
latest_file = max(list_of_files, key=os.path.getctime)
# 打印文件名
print("最新下载的文件名:", latest_file)
# 关闭浏览器
driver.quit()
```
在上面的示例中,你需要将 `download_path` 替换为你想要保存下载文件的路径。然后,你可以根据实际情况修改代码中的网页操作和元素定位部分。最后,通过 `os.listdir()` 函数获取下载文件夹中的文件列表,并使用 `max()` 函数找到最新下载的文件名。
请注意,该代码示例使用的是 Chrome 浏览器和 ChromeDriver。如果你使用的是其他浏览器,需要相应地更改代码。此外,确保已安装正确版本的浏览器驱动程序,并将驱动程序的路径添加到系统环境变量中。