失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python selenium 右键另存为 模拟手动v+自动保存

python selenium 右键另存为 模拟手动v+自动保存

时间:2022-12-25 11:46:12

相关推荐

python selenium 右键另存为 模拟手动v+自动保存

目录

需求思路步骤具体代码

需求

selenium 爬取过程中有部分网址无法图片元素或者无法截图页面,

使用ActionChains点击右键 然后加win32api 模拟手动保存

思路步骤

导入模块在初始化driver对象的时候设定,浏览器静默保存(即保存时不弹出另存为按钮)和默认保存位置打开所需网页右键图片win32api 发送v键和enter键

具体代码

from selenium.webdriver import ActionChainsfrom mon.by import Byfrom seleniumwire import webdriverfrom wzs.window import *from wzs.key import *chrome_options = webdriver.ChromeOptions()path = r'C:\Users\Administrator\Desktop'prefs = {'profile.default_content_settings.popups': 0, # 设置为 0 禁止弹出窗口'savefile.default_directory': path, # 设置保存路径'download.default_directory': path # 设置下载路径}chrome_options.add_experimental_option('prefs', prefs)driver = webdriver.Chrome(chrome_options=chrome_options)driver.implicitly_wait(10)driver.get('/creative/vcg/800/version23/VCG41175510742.jpg')# 在图片上右键element = driver.find_element(by=By.XPATH, value='/html/body/img')action = ActionChains(driver).move_to_element(element)action.context_click(element).perform()time.sleep(1)# 按vst = time.time()while True:winds = find_handles(class_name='Chrome_WidgetWin_2')if winds:key_press(winds[0], "v")breakif time.time() - st > 10 * 1000:print('没找到保持按钮')breakst = time.time()while True:winds = find_handles(title='另存为', class_name='#32770')if winds:time.sleep(1)key_press(winds[0], "return")breakif time.time() - st > 10 * 1000:print('没找到另存窗口')breakinput('*----') # 可以做其他事情 但是不嫩立即qiut 否则关闭浏览器了后就不能下载了driver.quit()

如果觉得《python selenium 右键另存为 模拟手动v+自动保存》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。