加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

女朋友是机票贩子?用Python写个刷飞机票的脚本!生活费多了两百

发布时间:2020-12-17 00:38:40 所属栏目:Python 来源:网络整理
导读:进群:548377875? ?即可获取数十套PDF从零基础到项目实战的哦! 看到上面的界面你是否也有下面的感受: 简单描述一下eterm的操作流程,方便理解脚本的实现过程。 输入查询命令: AVH/PEKNRT/15NOV/CA 【查询从北京首都机场到日本东京成田国际机场,11月15日

进群:548377875? ?即可获取数十套PDF从零基础到项目实战的哦!

看到上面的界面你是否也有下面的感受:

简单描述一下eterm的操作流程,方便理解脚本的实现过程。

输入查询命令:

AVH/PEKNRT/15NOV/CA

【查询从北京首都机场到日本东京成田国际机场,11月15日,国航的航班信息】

然后双击 后面的空白部分,即可显示各个航班的机票情况详细信息。

正文

上面提到的文章中使用了windows的api接口,但我按文章中的操作,使用spy++并没有找到这个操作界面的“句柄”。对于我这个software菜鸟来说,找句柄实在是太难了,找到句柄还有再操作句柄就更难了。

上面的文章还使用了另一个工具:PyMouse。我在学习上面的文章时,发现这个库真的真的太好用了。PyMouse 再配合PyKeyboard简直就是windows 自动化的神器呀。

在安装PyMouse这个库时遇到了一个坑,记录一下:

Python3中使用的PyMouse这个库作者已经不在维护,直接使用pip install PyMouse会失败,失败后记得uninstall。

现在这个库包含在PyUserInput这个库中。PyUserInput还包括操作键盘的PyKeyboard库。

在安装PyUserInput时还是需要安装Pyhook。不清楚为什么PyHook不可以直接pip安装,需要先下载Pyhook的whl,具体可以参考下文:

https://blog.csdn.net/yanshuai_tek/article/details/80868917

https://blog.csdn.net/shij19/article/details/53046048

虽然我没有找到eTerm的api接口,没办法直接操作eTerm,但我现在有了可以模拟鼠标键盘的库,我就可以直接模拟人工操作eTerm的过程了呀。

由于eTerm这个软件大家应该听都没听过,应该没办法运行整个脚本,部分脚本如下:

 1from pykeyboard import PyKeyboard
 2from pymouse import PyMouse
 3import time
 4import re
 5import win32clipboard as w
 6import win32con
 7import smtplib 
 8from email.mime.text import MIMEText
 9
10
11k = PyKeyboard()
12m = PyMouse()
13passList = ['A','1','2','3','4','5','6','7','8','9']
14mailto_list=['xxxxxx@163.com']
15
16#用于将剪贴板中的信息复制到text变量中
17def getText():
18 w.OpenClipboard()
19 t = w.GetClipboardData(win32con.CF_TEXT)
20 w.CloseClipboard()
21 text = str(t,encoding = 'utf8')
22 return text
23
24#解析航班信息的函数,此处省略了
25def exText(txtList):
26 fDict = {}
27 .......
28 return fDict
29
30#刷新航班信息,复制航班信息到剪贴板
31def checkData(a_x,a_y,b_x,b_y,c_x,c_y):
32 m.click(c_x,c_y,1,2)#第3个参数1表示左键,第4个参数2表示双击
33 time.sleep(3)
34 m.click(a_x,a_y)
35 k.press_key(k.shift_key)
36 m.click(b_x,b_y)
37 k.release_key(k.shift_key)
38 k.press_key(k.control_key)
39 k.tap_key('C')
40 k.release_key(k.control_key)
41 time.sleep(3)
42 newText = getText()
43 return newText
44
45
46#发现有低舱时,给自己发邮件,在之前文章中有此代码。
47class mailhelper(object):
48 pass
49
50def main():
51 print("请在3秒内把鼠标放在第一个点位置")
52 time.sleep(3)
53 a_x,a_y = m.position()
54 print("请在3秒内把鼠标放在第二个点位置")#前两个位置用于获取航班信息
55 time.sleep(3)
56 b_x,b_y = m.position()
57 print("请在3秒内把鼠标放在要双击的位置")#这个位置用于刷新航班信息
58 time.sleep(3)
59 c_x,c_y = m.position()
60 for i in range(3):
61 text = checkData(a_x,c_y)
62 textList = text.split('
')
63 flyDict = exText(textList)
64 emailText = checkClass('UA850','L',flyDict)
65 print(emailText)
66 time.sleep(10)
67
68 if emailText :
69 mailhelper().send_mail(mailto_list,'发现一个低舱',emailText)
70
71
72
73if __name__ == '__main__':
74 main()

>>>>价格

最后,问一下大家,我把这个脚本卖个我的客户(老婆),收多少钱合适~~多了两百块生活费。真开心!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读