[心得] 用 Python 寫 PTT 發錢程式

看板Python作者 (我惠我惠)時間8年前 (2017/03/03 22:58), 8年前編輯推噓7(704)
留言11則, 8人參與, 最新討論串1/1
小弟最近和朋友,因為都用 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
不考慮ssh嗎? 用telnet裸奔有點刺激吧
03/03 23:04, 1F

03/03 23:20, , 2F
方向鍵其實很簡單, 送 \x1b\x4fA (上, 下右左 BCD) 就好
03/03 23:20, 2F

03/03 23:22, , 3F
是說q有些情況也可以當←來用
03/03 23:22, 3F

03/03 23:35, , 4F
推一個
03/03 23:35, 4F

03/03 23:50, , 5F
方向鍵可用tn.write(b'\x1b[A')
03/03 23:50, 5F

03/04 08:30, , 6F
謝謝 SSH想說之後再弄 telnet簡單一點
03/04 08:30, 6F

03/04 09:41, , 7F
可以發新台幣嗎(誤)
03/04 09:41, 7F

03/04 10:29, , 8F
console 的編碼問題可以參考 https://is.gd/Tuaw8q
03/04 10:29, 8F

03/04 12:54, , 9F
好 我試看看 謝謝
03/04 12:54, 9F

03/04 13:10, , 10F
登入的時候帳號加,可以用utf8模式
03/04 13:10, 10F

03/15 23:26, , 11F
03/15 23:26, 11F
文章代碼(AID): #1OkOHx-W (Python)
文章代碼(AID): #1OkOHx-W (Python)