[心得] 用 Python 寫 PTT 發錢程式
小弟最近和朋友,因為都用 Mac。需要 Mac 也能用的 PTT 發錢程式
就只好自幹一個出來了。
先貼 GitHub:
https://github.com/wabilin/MumiGiveP
之前偶爾會在 leetcode 上用 Python 寫寫題目。
真正寫實用的程式還是第一次,如果看到哪裡不好也懇請指教。
[ 程式說明 ]
大概分兩個部分,
一是走 telnet 和 PTT 溝通,
二是從網頁上抓推文下來分析。
程式流程大概就是:
使用者輸入發錢設定 -> 從 PTT 網頁上抓下推文名單 -> 登入 PTT 自動發錢
說簡單其實還真的蠻簡單的,程式也不長。
[小心得]
Python 的 telnetlib 真的蠻傻瓜好用的,
之前還研究了 Telnet 的協定一陣子,
然後發現用這個函式庫可以寫蠻無腦的。
主要遇過問題是,怎麼處理 PTT 的編碼。
因為並不是單純的 Big5,所以 decode 會失敗。
最後還是靠 Google 找到別人寫好的。
另外一個問題是,PTT 的登入流程中,
會有很多不同的狀況,如果一個個寫分支或狀態機,
會很亂很麻煩。
最後想出了看起來沒什麼的解決方法,但又有點自覺巧妙
很意外的一點是,從 PTT 抓來的內容
在 Mac 用 iTerm 直接噴出來,辨識度居然還蠻高的
所以除錯也不難
在爬網頁方面的功能方面,
「requests」還蠻好用的,
然後為了降低相依性的麻煩,HTML Parser 直接用內建的,
用起來也還輕鬆愉快
篩選推文名單的功能,
因為 list comprehension 實在很好用,
所以意外快而短小的完成了!
( 本來還有點懶得做
最後要生成 Windows 執行檔的時候,
py2exe 包出來的,在 requests 的某些功能上會壞掉,
所以改用 PyInstaller,發現比 py2exe 更加無腦好用!
---- ---- ---- ----
最後一些還沒完成的事項:
不知道為什麼在 Windows 搞不定中文顯示,
所以目前輸出全用 ASCII。
還有一直不想加的 GUI,
同樣為了降低相依性,應該會用 Tk 作吧。
應該會有點土法煉鋼的感覺
還有一個蠻蠢的是,因為一直沒研究怎麼送方向鍵訊號
還沒有做登出XD
--
Sent from my Emacs-24
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.139.49.0
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1488553083.A.FA0.html
※ 編輯: lintsu (223.139.49.0), 03/03/2017 23:01:25
推
03/03 23:04, , 1F
03/03 23:04, 1F
→
03/03 23:20, , 2F
03/03 23:20, 2F
推
03/03 23:22, , 3F
03/03 23:22, 3F
推
03/03 23:35, , 4F
03/03 23:35, 4F
→
03/03 23:50, , 5F
03/03 23:50, 5F
→
03/04 08:30, , 6F
03/04 08:30, 6F
推
03/04 09:41, , 7F
03/04 09:41, 7F
推
03/04 10:29, , 8F
03/04 10:29, 8F
→
03/04 12:54, , 9F
03/04 12:54, 9F
推
03/04 13:10, , 10F
03/04 13:10, 10F
推
03/15 23:26, , 11F
03/15 23:26, 11F
Python 近期熱門文章
PTT數位生活區 即時熱門文章