因工作需要要写一个批量图片压缩的脚本。一种实现方式是用squoosh结合selenium。squoosh是一个开源的图片压缩工具,效果很好,但没有提供API,所以用selenium抓取。selenium是一个开源的自动化测试框架,可以操纵谷歌浏览器和火狐浏览器。据说selenium IDE插件可以录制脚本,又据说目前已经停止维护了。
用selenium 需要提前下载chromedriver放在谷歌浏览器的安装目录下,然后添加环境变量,注意chromedriver要和你的谷歌浏览器版本一致。具体可参考https://blog.csdn.net/weixin_45109684/article/details/117650036。pc端点下载链接如果没反应可以换手机试试。
代码如下
import re
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
def compass_picture(file_path: str, target_size: int):
quality = 90
quality_step = 10
option = webdriver.ChromeOptions()
# 不弹出弹框
option.add_experimental_option('prefs', {
'profile.default_content_settings.popups': 0})
driver = webdriver.Chrome(chrome_options=option)
# 隐式等待,等下一个页面加载完后再执行下一步操作,最长等待10秒
driver.implicitly_wait(10)<