python 开发金山打字通辅助脚本
python 开发金山打字通辅助脚本
- 环境
- 开发步骤
- 代码
环境
这个脚本主要是靠python的pyautogui库实现,使用五笔输入法进行输入。
请先下载安装搜狗五笔或者别的五笔输入法,搜狗输入法下载
from xml.dom.minidom import parse
from lxml import etree
import requests, pyautogui, json, os, time, string
开发步骤
通过研究金山打字通的文件,发现金山打字通的文章存储在xml文件内
文件内容:
1.搜索出金山打字通根目录下所有的xml文件
def get_files(path,rule):all = []# fpathe 表示当前正在访问的文件夹路径# dirs 表示该文件夹下的子目录名list# fs 表示该文件夹下的文件listfor fpathe, dirs, fs in os.walk(path): # os.walk获取所有的目录for f in fs:if f.endswith(rule): # 判断是否是".xml"结尾all.append(str(fpathe).replace('\\', '/', 100) + r'/' + str(f))return all
2.解析xml文件
py_text = []
file = r"D:\Program Files (x86)\Typeeasy\11.5\course\test\cn\1.xml" #xml 文件路径
DOMTree=parse(file) # 打开xml文件
booklist=DOMTree.documentElement #获取XML文档对象
courseInfo = booklist.getElementsByTagName('courseInfo') #查找courseInfo元素
if courseInfo:content = booklist.getElementsByTagName('item') #查找item元素for con in content:py_text.append(con.getAttribute('comparision')) #获取元素item的comparision属性内容,加入到列表
3.获取五笔字根
利用爬虫获取五笔字根
网站:https://qq.ip138.com/wb/wb.asp
def trf_get(text):url = 'https://qq.ip138.com/wb/wb.asp'data = {'querykey': text}headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.62'}res = requests.post(url, data=data, headers=headers) #使用post请求获取数据html = etree.HTML(res.text) #解析html数据bian = html.xpath('/html/body/div/div[2]/div[2]/div[2]/div[2]/table/tbody/tr[2]/td[2]/p/text()') #定位到数据,并获取if bian:return bian[0]else:return text
4.将获取到的字根进行保存与字根查询
def trf_jian(text):file = open('trf_text.json', 'r', encoding='utf-8') # 创建存储字根的文件zk = json.loads(file.read())if text in zk: # 判断本地是否存在该文字return zk[text]else: # 如果不存在上网查询res = trf_get(text) # 调用查询函数j = {text: res}zk.update(j) #将数据保存到本地with open('trf_text.json', 'w', encoding='utf-8') as f:f.writelines(json.dumps(zk))f.close() # 清理内存file.close() # 清理内存return res
5.输入功能
pun = string.punctuation # 所有的标点字符
file_name = '荷塘月色' # 文章标题
text = sa(file_name) # 调用查询函数
for t in text:time.sleep(0.8) # 速度限制a = trf_jian(t) # 查询文字print(t, a)pyautogui.typewrite(a) # 输入字根if a not in pun:pyautogui.press('space')
代码
import requests, pyautogui, json, os, time, string
from xml.dom.minidom import parse
from lxml import etreedef trf_get(text):url = 'https://qq.ip138.com/wb/wb.asp'data = {'querykey': text}headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.62'}res = requests.post(url, data=data, headers=headers)html = etree.HTML(res.text)bian = html.xpath('/html/body/div/div[2]/div[2]/div[2]/div[2]/table/tbody/tr[2]/td[2]/p/text()')if bian:return bian[0]else:return textdef trf_jian(text):file = open('trf_text.json', 'r', encoding='utf-8')zk = json.loads(file.read())if text in zk:return zk[text]else:res = trf_get(text)j = {text: res}zk.update(j)with open('trf_text.json', 'w', encoding='utf-8') as f:f.writelines(json.dumps(zk))f.close()file.close()return resdef get_files(path, rule):all = []# fpathe 表示当前正在访问的文件夹路径# dirs 表示该文件夹下的子目录名list# fs 表示该文件夹下的文件listfor fpathe, dirs, fs in os.walk(path): # os.walk获取所有的目录for f in fs:if f.endswith(rule): # 判断是否是".sfx"结尾all.append(str(fpathe).replace('\\', '/', 100) + r'/' + str(f))return alldef sa(file_name):py_text = []b = get_files(path=r'D:\Program Files (x86)\Typeeasy', rule=".xml")for i in b:DOMTree = parse(i)booklist = DOMTree.documentElementcourseInfo = booklist.getElementsByTagName('courseInfo')if courseInfo:sa_file_name = courseInfo[0].getAttribute('alias')if sa_file_name == file_name:content = booklist.getElementsByTagName('item')for con in content:py_text.append(con.getAttribute('comparision'))return ''.join(py_text)return ''if __name__ == "__main__":time.sleep(5)pun = string.punctuationfile_name = '荷塘月色'text = sa(file_name)for t in text:time.sleep(0.8)a = trf_jian(t)print(t, a)pyautogui.typewrite(a)# time.sleep(0.51)# pyautogui.screenshot('back.png')# if opencv_img.imgs():te = [';']if not t in te:if a not in pun:pyautogui.press('space')
python 开发金山打字通辅助脚本相关推荐
- C语言编一个金山打字通小游戏,js实现金山打字通小游戏
本文实例为大家分享了js实现金山打字通小游戏的具体代码,供大家参考,具体内容如下 字母匀速随机下落,键盘按下对应字母按键,字母消失重新生成新字母,新字母可帮助回调一部分初始高度 效果 1.页面内容 列 ...
- 官方金山打字通2009
官方金山打字通2009 软件类别:国产软件/教育教学 运行环境: Win98/2000/XP/2003/Vista 软件语言:简体中文 开发作者: 金山软件公司 官方网站:http://www.syy ...
- PlayOnLinux 安装 金山打字通2016
2019独角兽企业重金招聘Python工程师标准>>> 安装一个程序 安装未在列表中的程序 您想做什么? 选择新建虚拟盘安装程序,点击下一步. 请输入您应用程序的虚拟盘的名称 输入 ...
- 解决金山打字通不能缩小窗口问题
前段时间,在学五笔, 用的是金山打字通, 但是金山打字通只能全屏显示,这个本没有什么的, 但是我又想在练习的同时看电影,所以这样缩小窗口就显得很重要了 在网上搜索了一下发现金山打字通本身就不能全屏. ...
- 小白练打字:金山打字通
对于小白来说,首先肯定练打字,那么打字软件就很必要了,比如金山打字通 打开界面是这样 如果是完全小白,先用新手入门熟悉键盘 稍有基础则选英文打字进一步熟悉 最后当然练中文 除此之外还有打字 这就是打字 ...
- 金山打字通语句练习的文本
金山打字通语句练习的文本 the with more could seem leave follow fact war company nothing near love often car diff ...
- 金山打字通生死时速游戏介绍
金山打字通是一款帮助用户从零开始学习打字的软件,其内置的游戏使打字这一枯燥的活动变得更加有趣.在内置的五款游戏中,属生死时速(又名警察抓小偷)的制作最为精良,可玩性也最高. 设计元素 玩家 角色与特征 ...
- Dev-C++游戏创作之金山打字通(附带音乐)
Hi!大家好!我是你们的编程小王子 最近一直拖着没更新,因为实在是没什么游戏思路.但是终于搞出来一个 金山打字通相信很多小伙伴们都认识,所以东西我就不多介绍,今天主要讲解音乐的播放(超级简单的)! / ...
- 金山打字通2011+免升级
1,金山打字通2011下载地址:http://pan.baidu.com/s/1pKKLxrl ~everything和editplus在百度一搜就可以下载. 2,工具:everything + 金山 ...
- 金山打字通屡遭假冒 金山怒批“李鬼”带毒坑用户
假冒软件不仅危害了正版软件的权益,还会给使用者带来危害,广受欢迎的金山明星产品金山打字通近期又出现了"李鬼"产品,除了假冒软件常有的不稳定.报错.重启 等问题外,假冒软件还携带电脑 ...
最新文章
- 【Junit】BeforeClass、Before、After、AfterClass
- 2017年10月05日普及组 约数
- supervisor python_使用supervisor运行python脚本
- js 字符串截取_【js】让你一次性搞清楚slice,substr,substring字符串截取函数
- html 中写样式,在html文档中如何定义内部样式表
- [Linux环境]-centos7下安装jdk1.8.0_141流程.
- apache 设置session超时时间_深入分析 Session 和 Cookie,看这篇就对了
- java jdk文档查询方法_查询Java JDK文档的元数据
- 刷爆了!国企33岁程序员年入40w,直言:想降薪进阿里钻研技术
- Jquery Ajax 异步设置Table中某列的值
- 未能加载文件或程序集或它的某一个依赖项。参数不正确
- Bron-kerbosch算法-求图的最大团,极大团
- 系统之家启动维护光盘v3.0[小盘·贺岁篇]
- echarts-横坐标文字竖排显示和倾斜45°显示
- X509证书认证原理
- ” Microsoft.Office.Interop.Excel”无法引用
- 常微分方程组之龙格-库塔法
- 钉钉群机器人消息通知
- MFC中的CDC 绘图
- 广告公司不会被MCN干掉,但会被打残
热门文章
- Game.Physics.Engine.Development(游戏物理引擎开发)
- Java Apache POI 小记(读取Word通过模板创建PPT)
- Tomcat调优技巧
- 两个三维向量叉积_俩个三维向量叉乘怎么算啊?
- 有限元方法的核心思想是什么?
- windows下的内存型下载者病毒
- 一维码Code 128简介及其解码实现 zxing-cpp
- c# 小票打印机打条形码_C# Code 128条形码打印的问题
- 《西点军校的经典法则》序 -- 責任(せきにん)、栄誉(えいよ)、国家(こっか)...
- 【ASP.NET】ASP.NET入门