註1: 此手冊僅支援 0.8.36,如果你使用 0.8 版本,請更新至 0.8.36 後再參考手冊
註2: 有出現在本手冊中的使用者或文章,如果不想出現,很抱歉請馬上告知我
註3: 此版本程式碼已經停止更新,如有修正將會更新在 0.9 或更新版本
註4: 如果你使用的是 0.9.x,請參考 使用手冊 0.9
有任何問題都可以直接問我
Github: PyPtt
這裡列出了你可能遭遇到的例外
登入失敗
無此使用者
使用此 API 前請先登入
無權限,你可能被水桶或者帳號資格不符
此看板不支援快速推文,推文 API 會幫你重推
使用者離線
此畫面解析錯誤,導致原因可能為傳輸過程中遺失訊息
沒錢
錢太少
沒有這個看板
Since 0.8.13
連線已經被關閉
Since 0.8.13
尚未註冊使用者或被退註使用者,因權限受限將無法使用全部功能
Since 0.8.13
一個 PTT Library 物件只能被同一個 thread 操作
如果有第二個 thread 使用就會跳出此例外
Since 0.8.14
帳號密碼錯誤
Since 0.8.14
登入太頻繁
Since 0.8.15
使用過多 PTT 資源,請稍等一段時間並增加操作之間的時間間隔
Since 0.8.25
批踢踢萬或批踢踢兔不支援這個操作
Since 0.8.25
禁止推文
Since 0.8.26
禁止回應
Since 0.8.26
需要板主權限
Since 0.8.27
沒有該文章
PTT Library 並不支援兩個以上的 thread 同時操作一個物件
如果有需求,請啟動新 thread 後,所有操作都在同一個 thread
以下是初始化物件的方式
如果有改變語言顯示的需求,目前有支援英文與繁體中文
也可以修改 Log 等級方便回報錯誤
當然如果你有需要將 log 輸出成檔案或者其他需要處理 log 的需求
你可以加入 log handler 就可以捕捉到所有輸出
Since 0.8.11
當然 PTT Library 也支援批踢踢兔。
Since 0.8.25
以下就是登入登出範例
執行結果
如果你的登入需要剔除其他的登入
那可以將 KickOtherLogin=True 加入 login 參數
以下便是最簡單的取得特定文章的範例
註: Python 板第 7486 篇文章
或者用 AID 也可以的
從以上兩個範例可以看到 getPost 回傳了 Post
這裡面包含了文章所有屬性
這可以從以下範例明白怎麼取出每個屬性
執行結果
備註: 因為 PTT 推文計數有三分鐘的時間間隔,所以在使用推文條件搜尋的情況下
可能導致結果不夠即時
當然如果需要加條件搜尋也是可以的
只是我們需要知道加了搜尋條件之後的最大編號是多少
請看以下範例
執行結果
如果只需要對文章按 Q 的資訊
Since 0.8.16
你可以啟用 Query 模式,這樣就不會點進去解析內文、推文跟 IP 等等
可以加快一些速度,並減少出錯機率
當你想要取得的文章編號範圍包含最新文章的時候,
你就會需要這隻 API 來取得最新編號是多少
當然如果下了搜尋條件,編號也會跟著不同,這時候只需要把搜尋條件塞進去即可
如果是需要取得網頁版的最新頁數,則只需要改一下 Index Type 即可
Since 0.8.25
以下是大範圍爬文範例
執行結果
備註: 因為 PTT 推文計數有三分鐘的時間間隔,所以在使用推文條件搜尋的情況下
可能導致結果不夠即時
當然我們也可以像 getPost 那樣加入搜尋條件來爬我們的結果
在有下搜尋條件的情況下,無法使用 AID 來標記爬文範圍
如果只需要對文章按 Q 的資訊
Since 0.8.16
你可以啟用 Query 模式,這樣就不會點進去解析內文、推文跟 IP 等等
可以加快一些速度,並減少出錯機率
以下範例是在測試板貼文的範例
以下則是推文範例
執行結果
以下是查詢使用者範例
如果查無使用者則會丟出 PTT.Exceptions.NoSuchUser 例外
執行結果
在這裡將會展示取得現在呼叫器狀態後
隨機地去設定除了現在以外的一種呼叫器狀態
執行結果
首先展示丟水球的範例
在這裡則可以看到有兩種例外
無此使用者 PTT.Exceptions.NoSuchUser
使用者離線 PTT.Exceptions.UserOffline
接下來是接水球範例
建議如果要穩定收到水球請參考 呼叫器 先將呼叫器切換成關閉
以下是給 P 幣的範例
簡單到不知道要寫什麼,嗯
以下是寄信範例
如果對象不存在則會丟出 PTT.Exceptions.NoSuchUser 例外
執行結果
執行結果
Since 0.8.13
執行結果
Since 0.8.28
執行結果
以下是搜尋網友功能,輸入部分帳號回傳所有可能
支援特定頁面範圍,以提升搜尋效能
Since 0.8.30
執行結果
Since 0.8.32
以下是取得看板資訊 API
執行結果
Since 0.8.26
如果有定時設定板標的需求,這時候就可以使用 setBoardTitle
Since 0.8.26
如果板主有標記文章 S or D 的需求,可以參考以下使用方法
因為 jupyter 內部也使用了 asyncio 作為協程管理工具
會跟 PTT Library 內部的 asyncio 衝突
所以如果想要在 jypyter 內使用,請在你的程式碼中加入以下程式碼
安裝
引用
全部引用完之後
就可以順利在 jupyter 使用了
如果在 Po 文的時候有上色的需求,可以透過模擬鍵盤輸入的方式達到上色碼的效果
執行結果