python编写代码购买飞机票_女朋友是机票贩子?用Python写个刷飞机票的脚本!生活费多了两百...
私信小編007 即可獲取數十套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 91011k = PyKeyboard()12m = PyMouse()13passList = ['A','1','2','3','4','5','6','7','8','9']14mailto_list=['xxxxxx@163.com']1516#用于將剪貼板中的信息復制到text變量中17def getText():18 w.OpenClipboard()19 t = w.GetClipboardData(win32con.CF_TEXT)20 w.CloseClipboard()21 text = str(t,encoding = 'utf8')22 return text2324#解析航班信息的函數,此處省略了25def exText(txtList):26 fDict = {}27 .......28 return fDict2930#刷新航班信息,復制航班信息到剪貼板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 newText444546#發現有低艙時,給自己發郵件,在之前文章中有此代碼。47class mailhelper(object):48 pass4950def 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('\r\n')63 flyDict = exText(textList)64 emailText = checkClass('UA850','L',flyDict)65 print(emailText)66 time.sleep(10)6768 if emailText :69 mailhelper().send_mail(mailto_list,'發現一個低艙',emailText)70717273if __name__ == '__main__':74 main()
>>>>價格
最后,問一下大家,我把這個腳本賣個我的客戶(老婆),收多少錢合適~~多了兩百塊生活費。真開心!
總結
以上是生活随笔為你收集整理的python编写代码购买飞机票_女朋友是机票贩子?用Python写个刷飞机票的脚本!生活费多了两百...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 内置函数转list_pyt
- 下一篇: 说一个人屯是什么意思