MENU

Python+Tkinter实现微信编辑器收费模板提取助手

January 23, 2024 • Read: 423 • 作死之秀阅读设置

2020年5月20日发布过《系统生成带样式的网页复制到微信公众平台编辑器》 ,当然原理还是那个原理,只是对于非计算机行业的人来说不太友好

缘起

机缘巧合,在逛论坛时看到有人发布了用python发布的135编辑器提取助手源码

import re
import tkinter
from tkinter import messagebox
import pyperclip
import requests
 
def tiqu():
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.289 Safari/537.36',
    }
    id = str_TextBox1.get()
    response = requests.get('https://www.135editor.com/editor_styles/{}.html'.format(id), headers=headers)
    com = re.compile('<div class="l-img">.*?</div>',re.S)
    shou = com.findall(response.text)[0]
    if shou:
        pyperclip.copy(shou)
        messagebox.showinfo('提示', '以复制到你的粘贴板,直接粘贴即可~')
    else:
        messagebox.showinfo('提示', '模板ID错误~无法获取数据~~')
 
 
win = tkinter.Tk()  # 设定窗体变量
win.geometry('310x88+50+50')  # 格式('宽x高+x+y')其中x、y为位置
win.title('135收费模板提取助手')
 
ihc1 = tkinter.Button(win, text='提取模板', font=('宋体', '9'),command=tiqu)
ihc1.place(x=202, y=7, width=88, height=29)
 
ihLabel1 = tkinter.Label(win, text='输入模板ID', font=('宋体', '9'))
ihLabel1.place(x=7, y=14, height=22)
 
str_TextBox1 = tkinter.StringVar()  # 绑定变量
ihTextBox1 = tkinter.Entry(win, textvariable=str_TextBox1, font=('宋体', '9'))
ihTextBox1.place(x=79, y=7, width=101, height=29)
str_TextBox1.set('137387')
 
win.mainloop()

看到了被我弃之多年的python和多次蠢蠢欲动的tkinter,再加上这些代码倒也全是基础,顿时就来了兴趣……

好嘛,既然有了135的模板,那么像96、365、主编、壹伴这些就完全不成问题了。

难度升级的折腾

首先是拿96的上手,只不过素材分成了样式和模板两种类型。依照135的方法,再加对应的Label、Entry、Button即可把素材和模板拆分开。

通过查TK资料配合上GPT,对于第一次来用的我还是比较友好的,然后再加个菜单、点击事件

import webbrowser

def open_webpage():
    # 在这里替换为你要打开的网页地址
    url = "https://www.imwzh.com"
    webbrowser.open(url)

# 创建菜单栏
menu_bar = tk.Menu(win)

# 创建文件菜单
menu1 = tk.Menu(menu_bar, tearoff=0)
menu1.add_command(label="博客", command=open_webpage)
menu1.add_command(label="多级菜单", command=open_webpage)

# 将菜单添加到菜单栏
menu_bar.add_cascade(label="其他平台", menu=menu1)
menu_bar.add_cascade(label="使用帮助", command=open_webpage_help)
menu_bar.add_cascade(label="关于软件", command=open_popup_about)
menu_bar.add_cascade(label="退出软件", command=win.quit)
# 将菜单栏添加到窗口
win.config(menu=menu_bar)

几个平台差别不大,问题不大,直到壹伴编辑器,由于其通过vue前端渲染,直接查代码是没有html内容的,几个回合下来发现了素材的接口json

素材源码就在detail 中,于是再练习一下取json中的内容

import requests
import json
import html

# 发送GET请求获取JSON数据
response = requests.get('http://example.com/data.json')

# 解析JSON数据
data = json.loads(response.text)

# 提取HTML代码
html_code = data['material']['detail']

# 将转义字符还原为实际的特殊字符
html_code = html.unescape(html_code)

# 输出HTML代码
print(html_code)

正准备窃喜,不料其模板源码又换了种形式,无奈只能通过虚拟浏览器的方法获取源码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 配置 Chrome 无头浏览器
chrome_options = Options()
chrome_options.add_argument("--headless")  # 启用无头模式
driver = webdriver.Chrome(options=chrome_options)

# 打开网页
url = "https://yiban.io/style_detail/template/20240109/841.html"  # 替换为目标网页的 URL
driver.get(url)

# 等待动态内容加载完成
# 这里可以根据实际情况使用不同的等待方式,比如等待某个元素出现或特定时间
driver.implicitly_wait(10)  # 等待时间,单位为秒

# 获取页面内容
html_content = driver.page_source

# 关闭浏览器
driver.quit()

# 处理获取到的页面内容
# 可以使用正则表达式、BeautifulSoup等方法提取所需的数据

虽然是实现了,但是有点卡,并且会出现几秒 无响应 ,能力有限,只能就此作罢。

执行打包操作,完成exe的编译,简简单单的代码却硬凑了10M的大小……

pyinstaller --onefile --noconsole --icon=icon.ico editor.py

成品

下了班,用了一晚上的时间写了个不怎么通顺的使用教程:查看使用帮助

现已支持96、135、365、小蚂蚁、壹伴、主编、易点平台

135编辑器收费模板提取助手v1.0 下载一阿里盘 下载二123盘 ,为避免被采集,公众号内下载其他平台

Archives QR Code Tip
QR Code for this page
Tipping QR Code