首页 > 其他分享 >使用selenium下载文件--设置下载文件自动保存文件夹

使用selenium下载文件--设置下载文件自动保存文件夹

时间:2024-08-20 10:16:30浏览次数:11  
标签:文件 -- selenium add download options 下载

selenium自动下载文件到指定目录

本文参考:https://www.cnblogs.com/huxiaofeng1029/p/17383726.html

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

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,add,download,options,下载
From: https://www.cnblogs.com/wephiles/p/18368892

相关文章

  • rhTNFR-Fc中文文献-2005年(★5)
     rhTNFR-Fc中文文献-2005年 注册临床试验;类风湿关节炎;rhTNFR-Fc[1][1]胡大伟,鲍春德,陈顺乐,等.重组人Ⅱ型肿瘤坏死因子受体-抗体融合蛋白治疗类风湿关节炎双盲随机多中心对照临床研究[J/OL].中华风湿病学杂志,2005,9(11):664-668[2024-08-16].https://d.wanf......
  • 关于wifi的连接过程
    AP与STA:AP(接入点):AP是无线网络的中心设备,它连接有线网络并为无线设备提供网络接入。AP负责管理无线网络中的无线设备,如分配IP地址、控制流量等。一个无线网络可以有多个AP,以提供更好的覆盖范围和容量。STA(站点):STA是无线网络中的客户端设备,如笔记本电脑、智能手机等。S......
  • 【openGauss】openGauss中bytea类型的字段转换为blob类型
    【openGauss】openGauss中bytea类型的字段转换为blob类型1、查询2、修改表字段例如:表htmlsignature中字段caimg类型为bytea,现在要转换为blob1、查询转换语法:rawout(t.caimg)::text::raw::blob selectrawout(t.caimg)::text::raw::blob,t.*from htmlsignature t 2、......
  • 线程池
    `usingBogus;usingMicrosoft.EntityFrameworkCore;usingMicrosoft.EntityFrameworkCore.Infrastructure;usingMicrosoft.EntityFrameworkCore.Storage;usingMicrosoft.Extensions.DependencyInjection;usingNewtonsoft.Json;usingSystem;usingSystem.Collecti......
  • Install clickhouse
    Installscript#!/bin/sh-eOS=$(uname-s)ARCH=$(uname-m)DIR=if["${OS}"="Linux"]thenif["${ARCH}"="x86_64"-o"${ARCH}"="amd64"]then#Requireatleastx86-64......
  • ZooKeeper系列之ZAB协议
    概述ZooKeeperAtomicBroadcast,ZooKeeper原子消息广播协议。ZAB协议是为分布式协调服务ZK专门设计的一种支持崩溃恢复的原子广播协议。ZK主要依赖ZAB协议来实现分布式数据的最终一致性,基于该协议,ZK实现一种主备模式的系统架构来保持集群中各个副本之间的数据一致性。集群角色......
  • Unsafe入门讲解
    概述作为一个8年多Javaer,曾无数次看到Unsafe这个类,但一直没有去翻过源码,此为背景。借助于IDEA查看JDK源码,却发现有两个Unsafe类:sun.misc.Unsafejdk.internal.misc.Unsafejdk.internal.misc.Unsafe和sun.misc.Unsafe作为JDK中的两个不同类,它们提供一些底层的、非标准化的功......
  • Spring Security系列之PasswordEncoder
    概述任何一个登录系统的密码不能明文存储,万一发生数据库泄漏事故(不管是内部人员导出数据库数据还是被黑客攻击破解数据库实例节点拿到数据库数据等,又或者是其他情况造成的),将产生巨大的损失。因此明文密码在存储到数据库之前需要加密处理。加密算法有很多,大致有如下分类:哈希函......
  • Spring Security系列之Handler
    概述与Spring、SpringMVC、SpringBoot一样,SpringSecurity里也有很多Handler接口、可以分为两大类,一类是普通的XxxHandler(见名知意),另一类是对应的ServerXxxHandler(RequestRejectedHandler除外)。以AuthenticationSuccessHandler为例,SpringSecurity中用于处理认证成功事件的接......
  • Spring Cloud系列之Ribbon
    概述负载均衡负载均衡,即LoadBalance,LB,通器常有两种实现手段,服务端和客户端。负载均衡器,是带有负载均衡功能的实体(或载体),本文不做严格区分;即缩写LB,可表示负载均衡策略,也可以表示负载均衡器。服务端LB的缺点,提供更强的流量控制权,但无法满足不同的消费者希望使用不同负载均衡策......