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

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

zhangsir3年前 (2022-12-29)python139
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版权y1防采集https://mianka.xyz

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

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

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

标签: pythonselenium
分享给朋友:

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

Python爬虫xpath详解

一、xpath介绍xpath是一门在 XML 文档中查找信息的语言。最初是用来搜寻 XML 文档的,但同样适用于 HTML 文档的搜索。所以在做爬虫时完全可以使用 XPath 做相应的信息抽取。二、安装lxmllxml是Python的一个第三方解析库,支持HTML和XML解析,而且效率非常高,弥补了...

python+selenium元素定位的8种方法

定位元素,selenium提供了8中元素定位方法:(1)find_element_by_id() :html规定,id在html中必须是唯一的,有点类似于身份证号(2)find_element_by_name() :html规定,name用来指定元素的名称,有点类似于人名(3)find_elemen...

使用pyautogui进行屏幕捕捉实现自动化操作

import pyautogui import time # # 获取基本信息 # # 屏幕大小 # size = pyautogui.size() # print(size) #&nbs...

python selenium find_element_by_xpath 方法已经被弃用的解决办法

背景:在使用最新3.10.4Python版本时候,用selenium进行xpath定位元素,编译器提示:DeprecationWarning:find_element_by_xpath is deprecated. Please use find_element(by=By.XPATH, value...

python 爬虫 报错:UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0x8b in position”解决方案

发现报错“UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 1:invalid start byte”,方法一:根据报错提示,错误原因有一条是这样的:“'Accept-Encodi...