Selenium+Firefox的自动下载(去掉下载弹窗)

Selenium+Firefox的自动下载(去掉下载弹窗)

一、去掉下载弹窗的优点

检索键盘鼠标自动化控制模块的导入
可以无头化运行,不影响同时进行的其他的任务

二、去掉下载弹窗的一般命令

from selenium.webdriver import FirefoxProfile
#导入相应的设置模块
profile = webdriver.FirefoxProfile()
#实例化
profile.set_preference('browser.download.dir', path.strip('\u202a'))
#设置下载路径
profile.set_preference('browser.download.folderList', 2)
#设置下载存储方式,2为自定义路径、设置成 0 表示下载到桌面;设置成 1 表示下载到默认路径
profile.set_preference('browser.download.manager.showWhenStarting', False)
#在开始下载时是否显示下载管理器
profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip,application/octet-stream')
#对所给出文件类型不再弹出框进行询问

此处命令参见Time-Traveler:《Selenium下载路径》,链接: Selenium下载路径.

三、重点

上面命令说明比较简单,本人按照上述命令设置,在给定的例子中有效,但是我进行的是裁判文书的下载,结果始终无法自动下载,相关内容参见《中国裁判文书下载:selenium路线》,链接: 中国裁判文书下载:selenium路线.

兜兜转转找了好久这个问题一直没有解决,虽然也能用,但是始终不圆满

今天我用重新学习了一下,仔细看看了相关命令,某篇博文上看到关于firefox的新窗口变成新标签页的设置中,发现相关命令在
在这里插入图片描述

相应的设置也只是在对参数进行设置,继续深入发现其实这些一般命令涉及到了firefox的设定,继续找到义甬君:《Selenium自动化下载文件Firefox配置教程>》,链接: link.

 profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'application/zip')

这个命令十分重要,但是应该没有问题啊!因为下载的就是压缩包,应该就是application/zip
在这里插入图片描述

显示的也是zip的格式

但是后来去network中调试发现并非如此,下载弹窗的链接为:
在这里插入图片描述
进去发现其content-Type并不是application/zip,而是,application/octet-stream,至此真相大白,解决了不能自动下载的问题
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用SeleniumFirefox进行带用户名密码认证的HTTP代理操作可以按照以下步骤进行: 1. 安装Firefox浏览器,并安装FoxyProxy Standard插件。 2. 配置FoxyProxy,添加代理服务器地址和端口号,并选择“HTTP代理”类型。 3. 在FoxyProxy的“身份验证”选项卡中,填写代理服务器的用户名和密码,保存设置。 4. 在Python中使用Selenium启动Firefox浏览器,并使用FirefoxProfile设置代理服务器。 5. 在Firefox浏览器中访问需要使用代理服务器的网站,即可自动使用设置好的代理服务器进行访问。 下面是一个示例代码: ``` from selenium import webdriver from selenium.webdriver.common.proxy import Proxy, ProxyType # 创建FirefoxProfile对象 firefox_profile = webdriver.FirefoxProfile() # 设置代理服务器地址和端口号 proxy_url = "http://proxy.server.com:port" firefox_profile.set_preference("network.proxy.type", 1) firefox_profile.set_preference("network.proxy.http", proxy_url) firefox_profile.set_preference("network.proxy.http_port", 80) # 设置代理服务器的用户名和密码 proxy_username = "username" proxy_password = "password" firefox_profile.set_preference("extensions.foxyproxy.proxyPassword", proxy_password) firefox_profile.set_preference("extensions.foxyproxy.proxyUsername", proxy_username) # 启动Firefox浏览器 driver = webdriver.Firefox(firefox_profile=firefox_profile) # 访问需要使用代理服务器的网站 driver.get("https://www.example.com") ``` 这样,就可以使用带用户名密码认证的HTTP代理了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值