selenium+pyautogui: 保存页面上图片文件,避免使用requests被限制访问

一,安装用到的库:

linux

# apt install python3-tk python3-dev
# apt-get install xclip
# apt-get install xselect
# apt-get install wl-clipboard

pip

$ pip install pyautogui
$ pip install pyperclip

二,代码:

函数:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

from selenium.webdriver.common.action_chains import ActionChains

import time

import pyautogui
import pyperclip
from urllib.parse import urlparse, parse_qs


def get_name_by_url(url):
    parsed_url = urlparse(url)
    filename = parsed_url.path.split('/')[-1]
    print(filename)  # 输出: file.txt
    return filename

def save_one_img(driver,pic,dest_dir):
    back_src = pic.get_attribute('src')
    back_name = get_name_by_url(back_src)
    no_ext = back_name.split('.')[0]

    action = ActionChains(driver).move_to_element(pic)  # 移动到该元素
    action.context_click(pic)  # 右键点击该元素
    action.perform() # 执行
    pyautogui.typewrite(['v']) # 敲击V进行保存
    # 单击图片另存之后等1s敲回车
    time.sleep(1)
    dest_file = dest_dir+"/"+no_ext
    pyperclip.copy(dest_file)  # 把 指定的路径拷贝到过来
    time.sleep(1)  # 等待一秒
    pyautogui.hotkey('ctrlleft', 'v')  # 粘贴
    time.sleep(0.5)  # 等待一秒

    pyautogui.typewrite(['enter'])

调用


    # 获取背景图的地址
    back_img = driver.find_element(By.XPATH, "//div[@id='id-code-img']/div[@class='code-img-con']/img[@class='code-back-img']")
    print(back_img)
    print(back_img.tag_name)

    # 保存图片
    save_one_img(driver,back_img,"/data/python/xianyu/slider/")

 

 

posted @ 2025-11-24 13:45  刘宏缔的架构森林  阅读(12)  评论(0)    收藏  举报