美文网首页Python新世界
女朋友是机票贩子?用Python写个刷飞机票的脚本!生活费多了两

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

作者: 919b0c54458f | 来源:发表于2018-11-08 19:37 被阅读79次

进群: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,a_y,b_x,b_y,c_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()

>>>>价格

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

相关文章

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

    进群:548377875 即可获取数十套PDF从零基础到项目实战的哦! 看到上面的界面你是否也有下面的感受: 简单...

  • Android常用第三方库的集合和学习资源

    各种项目 飞机票:GitHub上最火的Android开源项目飞机票:Android开源项目及库飞机票:Androi...

  • 飞机票

    Happy Birthday! 上周末是双赫的生日,由于之前是否周末取南昌的事一直没有定下来,所以就耽误了订票的事...

  • 飞机票

    昨天,我惊喜地发现,腊月29的机票,居然只有700多,比前一阵儿便宜了1000多块钱。而且买机票有好几个平台,去哪...

  • 神灵眷顾的国度-尼泊尔

    (飞机上的景色,去的时候坐在右边可以看到喜马拉雅山脉) 飞机票:飞机票是随心买的,所以并没有选到特别便宜的飞机票。...

  • 回家的火车票

    最近一直在刷回家的火车票,搞了两个刷票软件,刷了快两周都没刷到想要的车次!昨晚差点就想买飞机票了! 无奈此时经济舱...

  • Android_关于WebView的详解

    飞机票》最下面有小案例 飞机票》史上最全WebView使用,附送Html5Activity一份

  • (486)飞机票

    看到这个题目,大家是不是在想我坐飞机✈️了 ,你错了,这是一件很难过的事情,就发生在昨天晚上。 昨...

  • 为爱所做的那些最疯狂的事

    大一期间,我喜欢的那个女孩子要和我分手。 然后我便花光了我两个月的生活费,买了张飞机票,订了个酒店,外加鲜花和最好...

  • 对不起,我爱你                      第四章

    李羽汐接过飞机票一看,是她最向往的城市,首尔。“哇!”李羽汐激动的跳起来,拿着飞机票亲了又亲:“阿星,你怎...

网友评论

  • 看_babe:你真的是菜鸟吗?没天理了。。这个方法可以用在所有机票网站吗?

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

本文链接:https://www.haomeiwen.com/subject/jscgxqtx.html