当前位置:首页 > python > 正文内容

Linux系统下使用Python+selenium+谷歌浏览器下载文件

zhangsir3年前 (2022-12-29)python217
from seleniumwire import webdriver
import time
ch_options = webdriver.ChromeOptions()
ch_options.add_argument("--headless")  
ch_options.add_argument('--no-sandbox')
ch_options.add_argument('--disable-gpu')
ch_options.add_argument('--disable-dev-shm-usage')
ch_options.add_experimental_option('excludeSwitches', ['enable-logging'])
#上面为Chrome配置无头模式
prefs = {'profile.default_content_settings.popups': 0, 'download.default_directory': 'c:\\','download.prompt_for_download':False}
ch_options.add_experimental_option('prefs', prefs) 
driver = webdriver.Chrome(options=ch_options)
driver.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': "c:\\"}}
command_result = driver.execute("send_command", params)
#上面全部都是配置
driver.get('https://xxx.xxx.xxx/download/xxxx/xxxx/')
driver.delete_all_cookies()
cookies=[{'domain': 'xxx.xxx.xxx', 'httpOnly': False, 'name': 'Hm_lpvt_6bcd52f51e9b3dce32bec4a3997715ac', 'path': '/', 'secure': False, 'value': '1665276322'}, {'domain': '.csdn.net', 'expiry': 1699836321, 'httpOnly': False, 'name': 'log_Id_pv', 'path': '/', 'secure': False, 'value': '3'}, {'domain': '.csdn.net', 'expiry': 1680828321, 'httpOnly': False, 'name': 'ssxmod_itna', 'path': '/', 'secure': False, 'value': 'eqUxg7D=DtqDT4Yq0Ln7tD9mxceoODue=e8e+hx0yDyeGzDAxn40iDt==uBQPgehwwPeWoecGeoCARGqIN4piPxYjG9d2eDHxY=DU=fReDx1q0rD74irDDxD3yD7PGmDie1RD7EZlMgkMQD3qDwDB=DmqG2eQiDAf6ACA=MS4rxaeDS42UxKA=DjqGgDBdtY1bDGLnT1GNMBnTDbrpuQniDtqD98mUXWeDHGuNlYTFsI346So+PIGqF4OGPW0hiRiLY/2DbCBeWFBqqRAGdUA5IPD==='}, {'domain': '.xxx.xxx', 'expiry': 1680828316, 'httpOnly': False, 'name': 'ssxmod_itna2', 'path': '/', 'secure': False, 'value': '7uiQD57KDKBKAKGQDXDnWIP+j=b8GCbA3bD8ujA8DeGXIw4Ga+SmaOkx8xWFNbFw1PFBM26xMbm0548d9POIUbyfjL5cOPeFWyhk4dQpM6q6z0WyAkN8x8SR06tDlyGg=jHA54TDKq3DFqD2FiD='}, {'domain': '.csdn.net', 'expiry': 1696812321, 'httpOnly': False, 'name': 'Hm_ct_6bcd52f51e9b3dce32bec4a3997715ac', 'path': '/', 'secure': False, 'value': '6525*1*10_20312428700-1665276319051-645465!5744*1*weixin_46704937'}, {'domain': '.xxx.xxx', 'expiry': 1696812321, 'httpOnly': False, 'name': 'Hm_up_6bcd52f51e9b3dce32bec4a3997715ac', 'path': '/', 'secure': False, 'value': '%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22weixin_46704937%22%2C%22scope%22%3A1%7D%7D'}, {'domain': 'xxx.xxx.xxx', 'httpOnly': False, 'name': 'csrfToken', 'path': '/', 'secure': True, 'value': 'Q3MDpIyCQcgeuB7pxn4bNskh'}, {'domain': '.xxx.xxx', 'expiry': 1699836316, 'httpOnly': False, 'name': 'UN', 'path': '/', 'secure': False, 'value': 'weixin_46704937'}, {'domain': '.xxx.xxx', 'expiry': 1680828316, 'httpOnly': False, 'name': 'AU', 'path': '/', 'secure': False, 'value': 'C65'}, {'domain': '.xxx.xxx', 'expiry': 1680828316, 'httpOnly': True, 'name': 'UserInfo', 'path': '/', 'secure': False, 'value': '9a9a1bb8a8574f0f840624255a525a9d'}, {'domain': '.xxxx.xxx', 'expiry': 1665362697, 'httpOnly': False, 'name': 'hide_login', 'path': '/', 'secure': False, 'value': '1'}, {'domain': '.xxxx.xxx', 'httpOnly': False, 'name': 'dc_sid', 'path': '/', 'secure': False, 'value': '98da2cf7ebe528942c52bce87bddbc30'}, {'domain': '.xxxx.xxx', 'expiry': 1680828316, 'httpOnly': False, 'name': 'p_uid', 'path': '/', 'secure': False, 'value': 'U010000'}, {'domain': '.xxxx.xxx', 'expiry': 1696812321, 'httpOnly': False, 'name': 'Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac', 'path': '/', 'secure': False, 'value': '1665276297'}, {'domain': '.xxxx.xxx', 'httpOnly': True, 'name': 'SESSION', 'path': '/', 'secure': False, 'value': '4ec695cc-a4a8-403e-b4ee-a0d544f3b2ec'}, {'domain': '.xxxx.xxx', 'expiry': 1699836295, 'httpOnly': False, 'name': 'uuid_tt_dd', 'path': '/', 'secure': False, 'value': '10_20312428700-1665276319051-645465'}, {'domain': '.xxxx.xxx', 'httpOnly': False, 'name': 'c_first_page', 'path': '/', 'secure': False, 'value': 'https%3A//xxx.xxxx.xxx/'}, {'domain': '.xxxx.xxx', 'httpOnly': False, 'name': 'c_first_ref', 'path': '/', 'secure': False, 'value': 'default'}, {'domain': '.xxxx.xxx', 'expiry': 1665278121, 'httpOnly': False, 'name': 'c_dsid', 'path': '/', 'secure': False, 'value': '11_1665276295762.945349'}, {'domain': '.xxxx.xxx', 'expiry': 1665279921, 'httpOnly': False, 'name': 'c_page_id', 'path': '/', 'secure': False, 'value': 'default'}, {'domain': '.xxxx.xxx', 'expiry': 1680828316, 'httpOnly': True, 'name': 'UserToken', 'path': '/', 'secure': False, 'value': '9a9a1bb8a8574f0f840624255a525a9d'}, {'domain': '.xxxx.xxx', 'expiry': 1665290721, 'httpOnly': False, 'name': 'dc_tos', 'path': '/', 'secure': False, 'value': 'rjgnfl'}, ]
for cookie in cookies:
    cookie_dict = {
        'domain': 'xxx.xxx.xxx',#这里是固定的每个网站都不同
        'name': cookie.get('name'),
        'value': cookie.get('value'),
        "expires": cookie.get('value'),
        'path': '/',
        'httpOnly': False,
        'HostOnly': False,
        'Secure': False}
    driver.add_cookie(cookie_dict)
driver.refresh()
time.sleep(1)
button = driver.find_elements_by_xpath('//span[@class="va-middle"]')
    
button[0].click()
    
time.sleep(1)
    
button1 = driver.find_element_by_xpath('//button[@class="el-button btn-light css-throttle el-button--primary el-button--small"]/span')
    
button1.click()
    
time.sleep(1)
for request in driver.requests:
    if request.response:
        if request.path == "/api/source/detail/v1/download":
        aa = request.response.body.decode("utf-8")
input('ok');
          
driver.quit()


zhangsir版权g4防采集https://mianka.xyz

扫描二维码推送至手机访问。

版权声明:本文由zhangsir or zhangmaam发布,如需转载请注明出处。

本文链接:https://mianka.xyz/post/88.html

标签: pythonselenium
分享给朋友:

“Linux系统下使用Python+selenium+谷歌浏览器下载文件” 的相关文章

Python怎么获取命令行参数

输入:“ import sys”,导入 sys 模块。插入语句:“print(sys.argv)”,打印获取的命令行参数。...

宝塔面板如何部署Django项目

宝塔面板如何部署Django项目

添加宝塔面板插件登录宝塔面板,进入软件商店,搜索“python项目管理器”然后点击安装进入python项目管理器,点击版本管理,安装版本(注:千万不要添加项目)然后添加网站,php不用所以选静态,添加好了,上传本地的源码。本地源码里没有requirements.txt文件,需要输入命令生成。命令如下...

pip安装三方库 国内的一些镜像站点推荐

pip 国内的一些镜像站点推荐镜像套路:使用cmd;输入命令pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名 即可开始安装。清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http...

解决Django的request.POST获取不到请求参数的问题

这个是Django自身的问题:只要在请求头的添加"content-type":'application/x-www-form-urlencoded'就行。...

python 实现彩色图转素描图

python可以把彩色图片转化为铅笔素描草图,对人像、景色都有很好的效果。而且只需几行代码就可以一键生成,适合批量操作,非常的快捷。需要的第三方库:Opencv - 计算机视觉工具,可以实现多元化的图像视频处理,有Python接口""" Photo ...

python 将json数据转成csv文件

从JSON数据转化CSV文件下面的这个Python脚本能够将JSON数据转化到CSV文件的表格当中去,我们输入的是带有.json后缀的文件,输出的是.csv后缀的表格文件,代码如下import json def converter(input_file, output...