通過微信,python實現一鍵查詢天氣+火車票+飛機票+快遞物流!
前言:
今天我們來進一步地實現更高階點的功能——查天氣+火車+飛機+快遞!!!當,這裡只是把他們集中在一起了,通過微信itchat的自動回覆功能,實現回覆關鍵字,返回自動查詢結果的效果!
學習Python中有不明白推薦加入交流群
號:960410445
群裡有志同道合的小夥伴,互幫互助,
群裡有不錯的視訊學習教程和PDF!
主程式:
weChat.py,主程式依賴weather、package、airlineTicket、trainTicket這幾個.py檔案(他們分別對應查天氣、快遞、機票、火車票的功能)。
原始碼:
已上傳至github:Flowingsun007/littleSpiders
【原理】:
1. 主程式weChat.py通過itchat庫實現微信好友聊天,自動回覆。
2.通過好友發來的相應關鍵詞的訊息(TEXT型別)呼叫相應的爬蟲程式碼執行(查天氣/火車/快遞/飛機),然後將查詢的結果自動回覆。
【主要功能】:
1.對微信好友傳送過來的各種型別訊息進行相應識別和處理、並自動返回相應訊息
TEXT型別的訊息:
如關鍵詞:快遞/火車/飛機/天氣,自動回覆相應內容並返回查詢結果!
其他型別的訊息:
微信除了文字型別(TEXT)的訊息,還有PICTURE圖片, MAP地點, CARD名片, NOTE通知, SHARING分享, RECORDING語音, ATTACHMENT附件, VIDEO視訊。對於這些型別,程式裡也做了相應的處理。
a.MAP即地圖型別的訊息,自動回覆地點名稱,經緯度資訊;
b.CARD即名片型別,無特別處理,直接返回msg['content'];
c.SHARING即分享型別,自動回覆分享的連結;
d.NOTE即通知型別,如果是紅包,則回覆“謝謝紅包打賞????...”否則msg['content'];
e.PICTURE圖片、RECORDING語音、ATTACHMENT附件、VIDEO視訊型別支援自動下載到電腦,同時將檔案轉發給“檔案傳輸助手”;
2.訊息自動回覆功能,支援好友自助退訂/訂閱
如果每句話都自動回覆,可能時間長了別人就會嫌煩了,這時無需手動,只要好友輸入TDD即可成功退訂,以後都會訊息免打擾(不會自動回覆),想重新開啟也很簡單,回覆KTT即可!程式每次執行時自動讀取.txt中的檔案,將已經退訂自動回覆的好友資訊載入到TDlist中,做到對於在TDlist中的好友,不呼叫itchat.send()方法進行自動回覆,起到了訊息免打擾的功能!
回覆TDD,則好友動態加入TDlist列表,並將好友寫入.txt中的檔案中;
回覆KTT,則好友從TDlist移除,更新後的TDlist重新寫入到.txt中儲存。
下面來幾張圖片,看的更直觀。
文字回覆效果:
控制檯效果:
微信助手效果:
退訂/開通效果:
其他型別回覆效果:
原始碼在github:Flowingsun007/littleSpiders
記錄一下怕以後忘了,中文名的檔案可以正常下載,但是在同步傳送到檔案助手的過程中總失敗,應該是編碼問題,花了大把時間去原始碼裡改了兩個地方,然後就可以正常收發中文名的檔案了。
原始碼包components資料夾下messages.py中:
_prepare_file()函式中此句:
with open(u'%s' % fileDir, 'rb') as f:
和upload_chunk_file()函式中此句:
('filename' , (os.path.basename(u'{fileDir}'), file_.read(524288),
'application/octet-stream'))])