目录
需求思路步骤具体代码需求
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+自动保存》对你有帮助,请点赞、收藏,并留下你的观点哦!