【selenium】如何追加属性允许自动下载文件

【背景】

用webdriver吊起的浏览器属性与自己正常双击打开的浏览器属性是不一致的,因此为了设置某些特定的浏览器属性,需要在Python吊起driver之前先给Driver实例做属性设置。
在爬虫的应用中经常需要下载文件,但是浏览器的默认下载属性却是需要每下载一个文件都需要用户点一下确认。通过在代码中对driver实例进行相应的属性设置,可以将浏览器设置为自动下载,摆脱需要人工介入下载的限制。

【具体代码】

# 开始运行网页脚本
options = webdriver.ChromeOptions()
prefs = {
    
    'profile.default_content_settings.popups': 0, "profile"

                                                                                             ".default_content_setting_values.automatic_downloads": 1}
chrome_driver = "D:\Document\GitHub\Oculus_spider\chromedriver.exe"

options.add_argument('--ignore-certificate-errors')
options.add_argument('--disable-notifications')
options.add_argument('--no-sandbox')
options.add_argument('--verbose')
options.add_argument('--disable-gpu')
options.add_experimental_option('prefs', prefs)

driver = webdriver.Chrome(chrome_driver,chrome_options=options)

driver.implicitly_wait(30)
driver.get("https://passport.csdn.net/login?code=applets")
driver.maximize_window()

上述代码是一个定义driver实例属性的代码段,其中prefs = {'profile.default_content_settings.popups': 0, "profile.default_content_setting_values.automatic_downloads": 1}options.add_experimental_option('prefs', prefs)表示先设定自动下载属性为生效,然后再将表示属性设置的字典付给driver的options. 这样再有文件下载时浏览器就会直接下载到默认地址,而不会要求用户点击确定。整个流程得以完全自动化。

猜你喜欢

转载自blog.csdn.net/weixin_41697242/article/details/125192583