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盘 ,为避免被采集,公众号内下载其他平台
版权声明:武志红将《Python+Tkinter实现微信编辑器收费模板提取助手》原创发表于『武志红的杂货铺』,链接地址:https://www.imwzh.com/archives/163.html。本站内容仅为个人生活杂记,谢绝任何形式的转载。