作品展示:
![](https://img-blog.csdnimg.cn/direct/855921f10e524bf59a40d278b323d278.png)
背景需求:
需要将公众号上的照片打包下载,图片按照01-50的方式排序
![](https://img-blog.csdnimg.cn/direct/4622f480a6ba44bc8b633e66e703471a.png)
手动下载要点开大图
![](https://img-blog.csdnimg.cn/direct/c9de6eb807e441888cfbdb9e928981c7.png)
右击另存 更高文件名-保存
![](https://img-blog.csdnimg.cn/direct/9ca3c6df6cbc4839a136b783a65ab53c.png)
点击下一张
循环以上动作。
我感觉手动下载都是重复的,如果30张图片,就要重复“箭头-右键-另存-输入名称-保存”的动作30次,特别是更改01、02、03的编号,容易记错。
所以我编写了一个UIBOT自动下载公众号程序的代码
代码设计:
![](https://img-blog.csdnimg.cn/direct/666e6102393b4df48df4f0200ddad42c.png)
![](https://img-blog.csdnimg.cn/direct/12d1f84c534f42f189f1396022a7b342.png)
![](https://img-blog.csdnimg.cn/direct/1d68bdf1a9f94ba3863d797528844ffb.png)
以下是UIBOT代码(这里选择C++代码)
Dim sRet,temp,sPath,sText,bRet,objPoint
Rem 找到第一张图片并点击打开
Rem 另存一次指定路径
Rem 右箭头换下一张,准备下载
Rem 预估张数,宁多不要少
name=Dialog.InputBox("文件夹名称","Laiye Automation","",false)
File.CreateFolder('''C:\Users\jg2yXRZ\OneDrive\桌面\'''&name)
sPath = File.ParentPath('''C:\Users\jg2yXRZ\OneDrive\桌面\'''&name)
TracePrint(sPath+'\\'+name)
路径 = sPath+'\\'+name
For a = 0 To 0 step 1
Mouse.Move(954, 519, false,{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Click("right", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Move(1000, 569, false,{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Click("left", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Action(@ui"框线项目_21","left","click",10000,{"bContinueOnError": false, "iDelayAfter": 100, "iDelayBefore": 100, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate", "bMoveSmoothly": false})
Delay(1000)
Mouse.Move(782, 215, false,{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Click("left", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})
Keyboard.Input(路径,{"iDelayAfter": 100, "iDelayBefore": 100, "sSimulate": "message"})
Keyboard.Press("Enter", "press", [],{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "simulate"})
Delay(1000)
Keyboard.InputText(@ui"窗口_微信图片_20240306171212.png1","000",true,20,10000,{"bContinueOnError": false, "iDelayAfter": 300, "iDelayBefore": 500, "bSetForeground": true, "sSimulate": "message", "bValidate": false, "bClickBeforeInput": false})
Delay(1000)
Mouse.Action(@ui"窗口_保存(S)2","left","click",10000,{"bContinueOnError": false, "iDelayAfter": 100, "iDelayBefore": 100, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate", "bMoveSmoothly": false})
Keyboard.Press("Right", "press", [],{"iDelayAfter": 100, "iDelayBefore": 100, "sSimulate": "simulate"})
Next
For i = 1 To 100 step 1
Mouse.Move(954, 519, false,{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Click("right", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Move(1000, 569, false,{"iDelayAfter": 100, "iDelayBefore": 100})
Mouse.Click("left", "click", [],{"iDelayAfter": 100, "iDelayBefore": 100})
Delay(1000)
Keyboard.Input(Format("%03d",i),{"iDelayAfter": 300, "iDelayBefore": 200, "sSimulate": "message"})
Delay(1000)
Mouse.Action(@ui"窗口_保存(S)2","left","click",10000,{"bContinueOnError": false, "iDelayAfter": 100, "iDelayBefore": 100, "bSetForeground": true, "sCursorPosition": "Center", "iCursorOffsetX": 0, "iCursorOffsetY": 0, "sKeyModifiers": [],"sSimulate": "simulate", "bMoveSmoothly": false})
Keyboard.Press("Right", "press", [],{"iDelayAfter": 100, "iDelayBefore": 100, "sSimulate": "simulate"})
Next
视频展示:
uibot 单张下载微信公众号图片
说明:
1、下载的图片包含公众号模板里面的图片,需要手动删除
![](https://img-blog.csdnimg.cn/direct/8a380b0b4cb84923bbe8f16e58b52197.png)
2、删除图片后,文件编号就不是连贯的
![](https://img-blog.csdnimg.cn/direct/3037f80f2b404beabe26a3ef082a74d7.png)
3、使用替换文件名的方法,更改序号。
''''
下载公众号图片,所有图片按照文件名改成01 02、03
作者:AI对话大师
时间:2024月3月7日
'''
import os
import shutil
folder_path = r'C:\Users\jg2yXRZ\OneDrive\桌面\雷锋纪念日'
file_list = os.listdir(folder_path)
image_list = [file for file in file_list if file.lower().endswith(('.jpg', '.png'))]
for i, image_file in enumerate(image_list):
new_file_name = f"{str(i+1).zfill(2)}{os.path.splitext(image_file)[1]}"
old_file_path = os.path.join(folder_path, image_file)
new_file_path = os.path.join(folder_path, new_file_name)
shutil.move(old_file_path, new_file_path)
![](https://img-blog.csdnimg.cn/direct/1f2f7e0f0f02417bbf580ad492f11497.png)
![](https://img-blog.csdnimg.cn/direct/5ac8a818e83644f6911a028baf324c1c.png)
![](https://img-blog.csdnimg.cn/direct/3e41abafc71341d8999ba22baac2a1ad.png)
打包发送
![](https://img-blog.csdnimg.cn/direct/f8715497abee41e7b77610d4dee19d19.png)
![](https://img-blog.csdnimg.cn/direct/b058d54900f24a509256b7fd6fbe4891.png)
![](https://img-blog.csdnimg.cn/direct/ab30166b993048ebba47fd351c348ab3.png)
![](https://img-blog.csdnimg.cn/direct/855921f10e524bf59a40d278b323d278.png)
把公众号的信息(文字+图片)打包上传
![](https://img-blog.csdnimg.cn/direct/d8c876eec48b4b5ba3fb0501fb3d9d9e.png)
感悟:
1、下载时间比较长:
公众号一共下载了50张图片(包括模板里的png和GIF),删除不需要的插图后,还有20张。下载时间5分钟。
2、确保了图片顺序:
UIBOT下载确保了每张图片按照顺序下载
3、编号让重复图片也能下载
当网页中有相同的图片(主要是背景模板里面的装饰插图),用001、002的编号,可以让相同图片也能顺利想在,不会提示“图片已存在”。
4、使用Python为图片重新编号:
手动删除下载图片中的重复背景插入后,剩余图片的编号不连贯,使用Python为已经排序的图片重新设定01、02、03的编号。实现最终的“公众号图文打包归档”的需求
|