【实战项目】教你用python批量处理图片去背景抠图,电商神器!

"""
片刻抠图
图片批量自动抠图去背景
作者:有霸夫
有问题请加:youbafu
"""
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import win32con
import win32gui
import os
s = Service(r'D:\driver\chromedriver.exe')
# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome(service=s)
# 打开 片刻抠图
browser.get(r'https://www.pickwant.com')
time.sleep(1)
browser.get(r'https://www.pickwant.com/#/editor')
time.sleep(2)
def 点击重新上传():
while True:
try:
# 定位到 重新上传 按钮
upload = browser.find_element(By.CSS_SELECTOR, '.border_wrap.upload_wrap')
upload.click()
except:
print('请先扫描登录或完成验证码识别')
else:
print('点击 重新上传')
break
finally:
time.sleep(1)
def 上传图片(文件路径):
dialog = win32gui.FindWindow('#32770', u'打开') # 对话框
ComboBoxEx32 = win32gui.FindWindowEx(dialog, 0, 'ComboBoxEx32', None)
ComboBox = win32gui.FindWindowEx(ComboBoxEx32, 0, 'ComboBox', None)
Edit = win32gui.FindWindowEx(ComboBox, 0, 'Edit', None) # 上面三句依次寻找对象,直到找到输入框Edit对象的句柄
button = win32gui.FindWindowEx(dialog, 0, 'Button', None) # 打开按钮
if Edit is not None and button is not None:
time.sleep(0.5)
win32gui.SendMessage(Edit, win32con.WM_SETTEXT, None, 文件路径) # 往输入框输入绝对地址
print('上传:', 文件路径)
time.sleep(0.5)
win32gui.SendMessage(dialog, win32con.WM_COMMAND, 1, button) # 点 打开 按钮
time.sleep(5)
def 点击下载():
while True:
try:
download = browser.find_element(By.CSS_SELECTOR, '.border_wrap.download_wrap')
download.click()
time.sleep(0.5)
confirm = browser.find_element(By.CSS_SELECTOR, '.dialog-content>.content_wrap>.download_wrap')
confirm.click()
except:
print('请先扫描登录或完成验证码识别')
else:
print('点击 下载')
break
finally:
time.sleep(1)
文件夹路径 = r'E:\前任女友'
names = os.listdir(文件夹路径) # 列举出该目录下所有的文件名
for name in names:
path = os.path.join(文件夹路径, name) # 拼接出图片完整路径
点击重新上传()
上传图片(path)
点击下载()
print('恭喜!全部完成')