利用WebDriver可以对网页进行自动化下载,而且在下载时,还允许设置文件下载路径,当然不同浏览器设置方式是不同的。
下面以 Chrome 浏览器为例,演示文件的下载。
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
options = webdriver.ChromeOptions()
prefs = {'profile.default_content_settings.popups':0,
'download.default_directory':os.getcwd()}
options.add_experimental_option('prefs',prefs)
driver = webdriver.Chrome(chrome_options=options)
driver.get("https://pypi.org/project/selenium/#files")
driver.find_element(By.LINK_TEXT,'selenium-4.8.2.tar.gz').click()
profile.default_content_settings.popups
设置为0,表示禁止弹出窗口。
download.default_directory':os.getcwd()
设置文件下载路径,这里使用os.getcwd()
方法获取当前脚本所在路径作为文件下载路径。
此外,火狐浏览器的示例如下:
import os
from selenium import webdriver
from selenium.webdriver.common.by import By
fp = webdriver.FirefoxProfile()
fp.set_preference("browser.download.folderList", 2)
fp.set_preference("browser.download.dir", os.getcwd())
fp.set_preference("browser.helperApps.neverAsk.saveToDisk",
"binary/octet-stream")
driver = webdriver.Firefox(firefox_profile=fp)
driver.get("https://pypi.org/project/selenium/#files")
driver.find_element(By.LINK_TEXT,"selenium-3.141.0.tar.gz").click()
browser.download.folderList
设置为 0,表示文件会下载到浏览器默认的下载路径;设置为2,表示文件会下载到指定目录。
browser.download.dir
用于指定下载文件的目录。通过os.getcwd()方法获取当前文件的所在位置,即下载文件保存的目录。
browser.helperApps.neverAsk.saveToDisk
指定要下载文件的类型,即Content-type 值,“binary/octet-stream”用于表示二进制文件。
以上就是本期文章的所有内容,感谢观看,如果对您有帮助请点赞关注+收藏,一键三连,多谢支持!