Python selenium 使用 pyautogui 库实现 右键保存图片 ,并将图片保存到指定文件夹

参考博客:

我在爬取网站图片的时候,遇到了 无论是添加请求头参数还是增加ip代理池也好,抓取到的图片都是一个无关缩略图,限于技术,无法实现进一步的突破了,只能选择selenium 模拟人的行为 ,通过 点击右键,保存图片的方式。

  • https://blog.csdn.net/weixin_41796155/article/details/102478659?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase
  • https://blog.csdn.net/weixin_41796155/article/details/102478659?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase
  • https://blog.csdn.net/jusulysunbeamy/article/details/90003194?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-7-90003194.nonecase&utm_term=python%E6%A8%A1%E6%8B%9F%E9%BC%A0%E6%A0%87%E5%8F%B3%E9%94%AE
  • http://www.manongjc.com/article/81600.html
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
import pyperclip 
import pyautogui
import time
import os

chrome_options = Options()
# chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_experimental_option('useAutomationExtension', False)

browser = webdriver.Chrome(executable_path=r"C:\chromedriver.exe", options=chrome_options)
browser.get("http://p.ik123.com/bizhi/75491.html")# 图片网站地址
browser.implicitly_wait(3) # 隐藏式等待3s

pic = browser.find_elements_by_xpath("//div[@id='gui_left']//img") # 根据 xpath 定位到图片 列表
pic_urls = [i.get_attribute('src') for i in pic]  # 得到图片的urls 列表
pic_names = [i.split('/')[-1:][0] for i in pic_urls]  # 得到图片的 图片名列表 
pic_root = os.path.abspath(os.path.dirname(os.getcwd()))  #得到当前根目录的 上一级目录
image_file = os.path.join(pic_root, 'image')  #新建一个文件夹 ,和当前项目同级目录
if not os.path.exists(image_file):
    os.makedirs(image_file)
pic_rejoin_path = [os.path.join(image_file,i) for i in pic_names]   # 新建
print(pic_rejoin_path)


for i in range(len(pic)):
    actions = ActionChains(self.browser)
    # 找到图片后右键单击图片
    actions.move_to_element(pic[i])  # 定位到元素
    actions.context_click(pic[i])  # 点击右键
    actions.perform()  # 执行
    pyautogui.typewrite(['v'])  # v 是保存的快捷键
    time.sleep(1)  # 等待一秒
    pyperclip.copy(pic_rejoin_path[i])  # 把 指定的路径拷贝到过来
    time.sleep(1)  # 等待一秒
    pyautogui.hotkey('ctrlleft', 'v')  # 粘贴
    time.sleep(0.5)  # 等待一秒
    pyautogui.press('enter')
    time.sleep(0.5)  # 等待一秒
    print("图片下载完成:%s"%pic_urls[i])

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蚂蚁小兵

慢慢长夜磨一章好文章,费烟!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值