使用selenium下载文件--设置下载文件自动保存文件夹
selenium自动下载文件到指定目录
有时候,我们需要在网页中点击某些按钮,将文件下载到本地,而浏览器会默认将文件下载到默认的“下载”文件夹,如果我们需要将文件下载到我们指定的地方,那么就需要添加一些配置:本文以下载python最新版为例:

import time
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# 下面这些是为了获取chrome的配置信息,可选择自己需要的进行添加
profile = 'Default'
executable_path = ''
options = Options()
options.add_argument('--start-maximized')
# 无头模式
# self.options.add_argument('--headless')
# self.options.add_argument('--disable-gpu')
options.add_argument('--load-extension=C:\\Users\\Admin\\AppData\\Local\\Google\\Chrome\\User Data\\Default\\Extensions\\lnbmbgocenenhhhdojdielgnmeflbnfb\\4.5.3_0')
options.add_argument(r'--user-data-dir=C:\Users\Admin\AppData\Local\Google\Chrome\User Data\Default')
options.add_argument(f'--profile-directory={profile}')
# 下面是为下载文件到指定目录所需的配置
download_dir = os.getcwd() + '\\data\\sellerSprite'
if not os.path.exists(download_dir):
os.makedirs(download_dir)
prefs = {
'profile.default_content_settings.popups': 0,
"download.default_directory": download_dir, # 设置默认下载目录
"download.prompt_for_download": False, # 取消下载时的询问
"download.directory_upgrade": True, # 支持目录升级
"safebrowsing.enabled": True # 禁用安全浏览功能
}
options.add_experimental_option("prefs", prefs)
driver = webdriver.Chrome(options=options)
# 打开python官网
driver.get('https://www.python.org/downloads/')
time.sleep(5)
# 找到下载按钮 点击下载
driver.find_element(By.XPATH, '//*[@id="touchnav-wrapper"]/header/div/div[2]/div/div[2]/p/a').click()
time.sleep(15)
driver.quit()
使用selenium下载文件--设置下载文件自动保存文件夹的更多相关文章
- VSCode自动保存文件设置
很多时候敲了一大堆代码,结果手贱或者电脑没电或者电脑突然崩溃,如果没有保存,只能说GG.好在VSCode有自动保存代码的功能,而且有好几种自动保存的模式选择,设置方法如下: 进入">文 ...
- selenium 下载文件设置下载路径
Chrome 文件下载 Chrome浏览器类似,设置其options: download.default_directory:设置下载路径 profile.default_content_settin ...
- VIM如何自动保存文件、自动重加载文件、自动刷新显示文件
1.手动重加载文件的命令是:e! 2.一劳永逸的方法是:vim提供了自动加载的选项 autoread,默认关闭. 在vimrc中添加 set autoread即可打开自动加载选项,相关选项: :hel ...
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
1.android下junit测试框架配置 单元测试需要在手机中进行安装测试 (1).在清单文件中manifest节点下配置如下节点 <instrumentation android:name= ...
- C#用openfiledialog文件和savefileDialog打开和保存文件
一 打开文件 Stream myStream = null; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog ...
- #用openfiledialog文件和savefileDialog打开和保存文件
一.打开文件 Stream myStream = null; OpenFileDialog openFileDialog1 = new OpenFileDialog(); ...
- Windows下设置U盘自动复制文件到本地
一.打开记事本,把下面的代码复制进去 set fso=createobject("scripting.filesystemobject") set ws=createobject( ...
- 解决phpstorm ftp自动保存文件问题
初次使用phpstorm, 1.配置ftp时,远程文件要用/ftp用户名/文件夹名: 2.由于版本管理的原因(猜测),直接从本地原有文件修改时各种办法都无法上传,结果从服务器上下载一份再修改,解决这个 ...
- python——在文件存放路径下自动创建文件夹!
1.a.py文件存放的路径下为(D:\Auto\eclipse\workspace\Testhtml\Test) 2.通过os.getcwd()获取的路径为:D:\Auto\eclipse\works ...
- java文件上传,自动判断文件类型
public enum FileType { /** * JEPG. */ JPEG("FFD8FF"), /** * PNG. */ PNG("89504E47&quo ...
随机推荐
- 内网穿透之http代理服务器
在公网访问内网http服务可以用内网穿透工具,例如frp和nps等优秀工具.但我发现这类工具会在服务器启动不止一个端口,对于有些网络审查来说很容易发现在进行内网穿透.因此我想是否可以只在服务器启动一个 ...
- [AI回答]Java中Long和long的区别,为什么在Springboot项目中一般使用Long
Long 和 long 的区别 在Java中,Long 和 long 是两个不同的概念,它们分别代表不同的数据类型: long: 这是一个 基本数据类型 (primitive type). 它用于存储 ...
- 【Javaweb】【Servlet】简单验证用户的登陆
点击查看代码 | jsp <%-- Created by IntelliJ IDEA. User: xrilang Date: 30/12/2021 Time: 17:31 --%> &l ...
- Linux readonly
1. 概念readonly在shell脚本中,用来标记变量是只读的,后续执行过程中就不能对其值进行改变,这个用来定义一些常量类的变量. 如果对其进行重新赋值,会提示错误 [root@localhost ...
- 为什么 Llama 3.3 70B 比 GPT-4o 和 Claude 3.5 Sonnet 更优秀
过去七天的 AI 新闻如狂风暴雨般涌来,AI 世界发生了许多重大变化.在这篇文章中,我们将深入探讨来自 Llama 3.3 70B.GPT-4o 和 Claude 3.5 Sonnet 等主要参与者的 ...
- Qt音视频开发44-本地摄像头推流(支持分辨率/帧率等设置/实时性极高)
一.前言 本地摄像头推流和本地桌面推流类似,无非就是采集的设备源头换成了本地摄像头设备而不是桌面,其他代码完全一样.采集本地摄像头实时视频要注意的是如果设置分辨率和帧率,一定要是设备本身就支持的,如果 ...
- ubuntu更换conda的源
ubuntu更换conda的源有两种方法:一.使用命令行更换Conda源至国内镜像站点.二.直接创建并编辑编辑conda的配置文件.condarc. 一.使用命令行更换Conda源至国内镜像站点 要在 ...
- [转]Vetur can't find `tsconfig.json` or `jsconfig.json` in d:\VueProjects\myroute.
vue界面启动项目 visual code报错 如下图,找到 Ignore Project Warning 前边打上对勾
- [转]MySQL和MySQL驱动mysql-connector-java升级到8.0.X版本
原文链接:MySQL和MySQL驱动mysql-connector-java升级到8.0.X版本
- 携程技术分享:亿级流量的办公IM及开放平台技术实践
本文由携程技术Jim分享,原题"日访问过亿,办公IM及开放式平台在携程的实践",下文进行了排版和内容优化. 1.引言 携程内部的办公IM项目最早在2016年立项,经历了初期简单办公 ...