PyPtt (PTT Library) 是一套 Pure Python PTT API 是目前支援最完整的 PTT API。具備大部分常用功能,無論推文、發文、取得文章、取得信件、寄信、發 P 幣、丟水球,你都可以在這裡找到完整的使用範例
pip install PyPtt
直接連線登入的 PTT library,支援 PTT, PTT2
Home Page: https://pyptt.cc/
License: GNU Lesser General Public License v3.0
pip install PyPtt
origin='https://term.ptt.cc'
,可以正常連線1.ptt.py檔案有點長 有無考慮重構一下?
2.雖然PTT主要使用中文 但有些時候可能會在僅支援英文的電腦上執行BOT 這時候錯誤訊息需要是英文的比較方便.
有修改的意願嗎?
或著我找時間幫你改?
PushAuthorPattern有誤只會取得12字元ID的推文
如題。
原本的程式碼
if Search != '':
SendMessage += '/' + Search + '\r'
可增加參數SearchBy,可接受a、Z、G、A等
if Search != '' :
if SearchBy == '':
SendMessage += '/' + Search + '\r'
else
SendMessage += SearchBy + Search + '\r'
即可以搜尋推文、作者等,也可以再增加不列(!)功能。
希望能支援使用 SSH 連線到 PTT 的功能。
(之前看到 https://github.com/liuyenting/pttparser 就是用 paramiko
連 SSH 登入 PTT。)
使用的是這篇︰
文章代碼(AID): #1R6Im2l1 (C_Chat) [ptt.cc] [ANSI] 偶像大師 MILLION LIVE
文章網址: https://www.ptt.cc/bbs/C_Chat/M.1528376322.A.BC1.html
我在用 PTT.API() 的 get_post 時會遇到回傳的 post 的 push_number 為 NoneType
查詢是先 get_newest_index ,得到 index 在用 for 去篩選各文章。
Eg. 《ID暱稱》_______ (#%#$&@》$&) 《經濟狀況》清寒
暱稱中含有 》導致查詢異常
如果登入的使用者他的個人信件炸掉的時候
畫面不會有任何提示
就變成他會一直重新登入,無限迴圈
看是否遇到這種狀況的時候就跳提示,並終止無限迴圈的問題。
部分code如下
PTTBot.login(username, password, KickOtherLogin=True)
User = pttBot.getUser(username)
我是改成
from uao import register_uao
register_uao()
contents = contents.encode("big5-uao", 'replace').decode("big5-uao", 'replace')
就只會針對無法轉換成uao的文字才變成?
,不會搞得整個內文都會變big5編碼引響其他內文文字
如標題,目前 API 無法組合出取得置頂文章清單的效果。
待實作
例如在 Steam
版搜尋作者 ggaass
,但因為該版沒有該作者的文章,會回傳該版 最大文章編號。
這個其實沒有問題,因為實際在 ptt 操作下,用 a
或 /
搜尋,若沒有符合的搜尋結果,畫面是不會動的。
但利用 get_newest_index
搜尋時,是否可以加入判斷,若搜尋結果的文章編號 == 該版的最新文章編號,則拋出 exception
或是 index=0
。
程式碼:
https://github.com/vi000246/PttArmyRadar/blob/master/PTT.py
我用UserInfo.getLoginTime()回傳的結果都是1
想問這是程式bug嗎
在遇到信箱已滿訊息時,輸入 qq
還是可以進入主功能表。至於「從主功能表進入私人信件區後就出不來」的問題,可以改變進入信箱的方式︰使用快速鍵 ^zm
。
例如說 Gossiping 794427
post.getDate()
會回傳 ''
程式碼
Board='Stock'
SearchType=PTT.PostSearchType.Keyword
Condition='盤中閒聊'
TestRange = 100
NewestIndex = PTTBot.getNewestIndex(
PTT.IndexType.Board,
Board,
SearchType=SearchType,
SearchCondition=Condition,
)
StartIndex = NewestIndex - TestRange + 1
print(f'預備爬行 {Board} 編號 {StartIndex} ~ {NewestIndex} 文章')
ErrorPostList, DelPostList = PTTBot.crawlBoard(
crawlHandler,
Board,
StartIndex=StartIndex,
EndIndex=NewestIndex,
SearchType=SearchType,
SearchCondition=Condition,
)
若使用者沒有名片,則在這行中的 Data
string list 長度則會有 11 行 (第 11 行為:<user> 目前沒有名片
),進而觸發 Exceptions.ParseError(OriScreen)
導致使用者資料擷取失敗。
PTT 帳號長度可以是 2,比如 XX 或 is,但是查詢會異常
我參考以下這段時:
當然我們也可以像 getPost 那樣加入搜尋條件來爬我們的結果
使用PTT.data_type.post_search_type.AUTHOR搜尋作者時,
get_newest_index會先a該作者搜尋文章範圍,
crawl_board的start_index, end_index會變成該作者的文章範圍(如:該作者在某版發10篇文章,會搜尋該版第1~10篇文章)
造成搜尋錯誤
也許需要為這種情況做點調整?
"Place module docstring here"
import os
from PTTLibrary import PTT
PTT_BOT = PTT.Library(
# 目前支援繁體中文與英文
# (預設值) Chinese
# Language=PTT.Language.Chinese,
# Language=PTT.Language.English,
# 有三個等級可以選擇
# (預設值) INFO
# LogLevel=PTT.LogLevel.INFO,
LogLevel=PTT.LogLevel.TRACE,
# LogLevel=PTT.LogLevel.DEBUG,
)
try:
PTT_BOT.login(
os.getenv('PTT_USER_NAME', 'PTT_USER_NAME Not found'),
os.getenv('PTT_USER_PASSWORD', 'PTT_USER_PASSWORD Not found'),
KickOtherLogin=False
)
except PTT.Exceptions.LoginError:
PTT_BOT.log('登入失敗')
PTT_BOT.log('登入成功')
board = 'Steam'
Post = PTT_BOT.getPost(
board,
#PostIndex=PTT_BOT.getNewestIndex(PTT.IndexType.Board, Board=board)
PostIndex=4444
)
print(Post.getTitle())
PTT_BOT.logout()
文章代碼(AID): #17VB5YVd (Steam) [ptt.cc] [公告] C-Strike 板 開始賭博!
文章網址: https://www.ptt.cc/bbs/Steam/M.1199354210.A.7E7.html
PTT Library v 0.8.10
Developed by PTT CodingMan
[0826 03:37:53][資訊] 繁體中文語言模組 [初始化]
[0826 03:37:53][資訊] 連線核心 [初始化]
[0826 03:37:53][資訊] 批踢踢函式庫 v 0.8.10 [初始化]
[0826 03:37:53][資訊] 登入帳號 [et84121]
[0826 03:37:53][資訊] 連線核心 [啟動]
[0826 03:37:53][資訊] 連線批踢踢 [WebSocket]
[0826 03:37:53][除錯] 送出訊息 !!!you can't see me!!!
--------------------------------------------------
HTTP/1.1 200 OK
˙ PTT ◣ ˙ ◢██████◤
140.112.172.11 ◢█◥█◤ ◢█████
┌─┐ 批踢踢實業坊 ◢▃██◥█◤ ◢█████◤
│–└┐ ptt.cc ◢█████◥█◤ ◢█████
│– │ ◢███◤███◥◤ ◢█████◤ ˙
─┘ │┌──┐ ◥◤ ████◣◢████
└┤ –│ ◢████◢███◤
│┌───┐ █████▇▇▆▆▅▅▄▄▃▂▁
┌─┴┘–– └ ◢█████▇▇▆▆▅▅▄▄▃▃▂▂▁
│–– ◥██
len:496
--------------------------------------------------
--------------------------------------------------
撐香港的自由
歡迎來到 批踢踢實業坊 目前有【47893】位使用者
※本站目前暫停開放新帳號註冊。
=PTT=[21;1H
len:145
--------------------------------------------------
--------------------------------------------------
撐香港的自由
歡迎來到 批踢踢實業坊 目前有【47893】位使用者
※本站目前暫停開放新帳號註冊。
=PTT=[21;1H
len:145
--------------------------------------------------
--------------------------------------------------
登入中,請稍候...
len:33
--------------------------------------------------
[0826 03:37:53][資訊] 批踢踢訊息 [登入中,請稍候]
[0826 03:37:53][除錯] 花費時間 [0.12]
[0826 03:37:53][除錯] 送出訊息 [b'\x0c']
--------------------------------------------------
注意: 您有其它連線已登入此帳號。
您想刪除其他重複登入的連線嗎?[Y/n]
len:64
--------------------------------------------------
[0826 03:37:53][資訊] 批踢踢訊息 [不剔除其他登入]
[0826 03:37:53][除錯] 花費時間 [0.3]
[0826 03:37:53][除錯] 送出訊息 [b'n\r\x0c']
--------------------------------------------------
注意: 您有其它連線已登入此帳號。
您想刪除其他重複登入的連線嗎?[Y/n]
len:64
--------------------------------------------------
[0826 03:37:53][資訊] 批踢踢訊息 [不剔除其他登入]
[0826 03:37:53][除錯] 花費時間 [0.02]
[0826 03:37:53][除錯] 送出訊息 [b'n\r\x0c']
--------------------------------------------------
活動看板 PttFamous
j ㄨ p ▁▂▃▄ ▄▃▃▄▅g 獺獺獺獺◤▎
ㄐ銵c─cμ o ▂▄▆v▍ v▆g ▔ ̄ ▊▌ 哄▏◢
◤c▃▄▃c◣ P p df ▎ e▅ ▅e ▉ ▊de
◤ ●﹒● ◣T =PTT=[0;36;4
len:244
--------------------------------------------------
--------------------------------------------------
活動看板 PttFamous
j ㄨ p ▁▂▃▄ ▄▃▃▄▅g 獺獺獺獺◤▎
ㄐ銵c─cμ o ▂▄▆v▍ v▆g ▔ ̄ ▊▌ 哄▏◢
◤c▃▄▃c◣ P p df ▎ e▅ ▅e ▉ ▊de
◤ ●﹒● ◣T o eg ◣l▏ l▍ 〓 j 〓n ▏ ▍ ◣ k okk
︶︶ T pkdf k▏ d▃▃▄f▁ m ▎◣ ◣ deo▌oj
" "' oo p◣j ◤b ▂▃▃▄g ▍ ◣ ◣ fg ok j
首獎300,000P ▋▁▂芍f =PTT=[0
len:429
--------------------------------------------------
--------------------------------------------------
活動看板 PttFamous
j ㄨ p ▁▂▃▄ ▄▃▃▄▅g 獺獺獺獺◤▎
ㄐ銵c─cμ o ▂▄▆v▍ v▆g ▔ ̄ ▊▌ 哄▏◢
◤c▃▄▃c◣ P p df ▎ e▅ ▅e ▉ ▊de
◤ ●﹒● ◣T o eg ◣l▏ l▍ 〓 j 〓n ▏ ▍ ◣ k okk
︶︶ T pkdf k▏ d▃▃▄f▁ m ▎◣ ◣ deo▌oj
" "' oo p◣j ◤b ▂▃▃▄g ▍ ◣ ◣ fg ok j
首獎300,000P ▋▁▂芍f ▅▆▁◥ ◣ ◣ v▍
____
b 活動看板 FamousWords
◣ ▁ ◢▁c df▃▄▅ ▔ 獺獺獺獺 ◣▍◤
◥▂ d▄f ◤ ▅▆▔ ▂▃ 縑 c▁▎▂▄f ◤ c一c_
P v ◤間◣ ◤縈d▄▅▆ e▄▅ ▄ ▅m ▂c e▅v f=PTT=[4
len:770
--------------------------------------------------
--------------------------------------------------
活動看板 PttFamous
j ㄨ p ▁▂▃▄ ▄▃▃▄▅g 獺獺獺獺◤▎
ㄐ銵c─cμ o ▂▄▆v▍ v▆g ▔ ̄ ▊▌ 哄▏◢
◤c▃▄▃c◣ P p df ▎ e▅ ▅e ▉ ▊de
◤ ●﹒● ◣T o eg ◣l▏ l▍ 〓 j 〓n ▏ ▍ ◣ k okk
︶︶ T pkdf k▏ d▃▃▄f▁ m ▎◣ ◣ deo▌oj
" "' oo p◣j ◤b ▂▃▃▄g ▍ ◣ ◣ fg ok j
首獎300,000P ▋▁▂芍f ▅▆▁◥ ◣ ◣ v▍
____
b 活動看板 FamousWords
◣ ▁ ◢▁c df▃▄▅ ▔ 獺獺獺獺 ◣▍◤
◥▂ d▄f ◤ ▅▆▔ ▂▃ 縑 c▁▎▂▄f ◤ c一c_
P v ◤間◣ ◤縈d▄▅▆ e▄▅ ▄ ▅m ▂c e▅v fe▄▅▆
T ◣▇ ▂e ◤ ▄▅ ▍ e▄▅v▔ o ◣ ◢▂▂▃
T v j ▍ 岷▍ m c▃ f▄▅ ▍ ◣ ◣ m ▂▂▃ ▋
◤ okl▎ l▍ p m oo ▏ ▍ ◣ ◣ ▂▂▃ ▊
◤▊▌▏g ▎▍ ▊ ▌ g▉=PTT=[0;
len:953
--------------------------------------------------
--------------------------------------------------
活動看板 PttFamous
j ㄨ p ▁▂▃▄ ▄▃▃▄▅g 獺獺獺獺◤▎
ㄐ銵c─cμ o ▂▄▆v▍ v▆g ▔ ̄ ▊▌ 哄▏◢
◤c▃▄▃c◣ P p df ▎ e▅ ▅e ▉ ▊de
◤ ●﹒● ◣T o eg ◣l▏ l▍ 〓 j 〓n ▏ ▍ ◣ k okk
︶︶ T pkdf k▏ d▃▃▄f▁ m ▎◣ ◣ deo▌oj
" "' oo p◣j ◤b ▂▃▃▄g ▍ ◣ ◣ fg ok j
首獎300,000P ▋▁▂芍f ▅▆▁◥ ◣ ◣ v▍
____
b 活動看板 FamousWords
◣ ▁ ◢▁c df▃▄▅ ▔ 獺獺獺獺 ◣▍◤
◥▂ d▄f ◤ ▅▆▔ ▂▃ 縑 c▁▎▂▄f ◤ c一c_
P v ◤間◣ ◤縈d▄▅▆ e▄▅ ▄ ▅m ▂c e▅v fe▄▅▆
T ◣▇ ▂e ◤ ▄▅ ▍ e▄▅v▔ o ◣ ◢▂▂▃
T v j ▍ 岷▍ m c▃ f▄▅ ▍ ◣ ◣ m ▂▂▃ ▋
◤ okl▎ l▍ p m oo ▏ ▍ ◣ ◣ ▂▂▃ ▊
◤▊▌▏g ▎▍ ▊ ▌ g▉g▇ ▎ ◣ 縈▔◣
 ̄
歡迎您再度拜訪,上次您是從 1.170.141.195 連往本站。
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 請按任意鍵繼續 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
len:1131
--------------------------------------------------
[0826 03:37:54][資訊] 批踢踢訊息 [請按任意鍵繼續]
[0826 03:37:54][除錯] 花費時間 [0.87]
[0826 03:37:54][除錯] 送出訊息 [b'q']
--------------------------------------------------
【主功能表】 批踢踢實業坊
███████████████████████████████████████
▅▆▆◥███████████████████████████████████
-─`  ̄ ̄ ̄  ̄ ̄ ̄  ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄
▂▃ ︱ | ﹨ | \ ∣
\_ ∕ ◤▂ ▊。 / ∕ ﹍ ﹨ L_ | | ⊥ | .∠
╳ ▊˙▎◤▎`┐ │, ︳▁ ╓-.︿ ∕ ` _︳ ∣ . _x_ \ | ╲
L _▄▊\ ▆' N \_7_︷-+┤ ↖╳ 〉┬'┌‵√ 7╴.-!′ `┬+┼=.∕= ╴
┤ ▄ ▄, ╲,_ ◢│\_╱▏\_∕_﹀ _;}—L ↘_〕-_╳ | \__F ↙ ﹍] ▏_∕
╲=PTT=[32
len:543
--------------------------------------------------
--------------------------------------------------
【主功能表】 批踢踢實業坊
███████████████████████████████████████
▅▆▆◥███████████████████████████████████
-─`  ̄ ̄ ̄  ̄ ̄ ̄  ̄ ̄  ̄ ̄ ̄ ̄ ̄ ̄
▂▃ ︱ | ﹨ | \ ∣
\_ ∕ ◤▂ ▊。 / ∕ ﹍ ﹨ L_ | | ⊥ | .∠
╳ ▊˙▎◤▎`┐ │, ︳▁ ╓-.︿ ∕ ` _︳ ∣ . _x_ \ | ╲
L _▄▊\ ▆' N \_7_︷-+┤ ↖╳ 〉┬'┌‵√ 7╴.-!′ `┬+┼=.∕= ╴
┤ ▄ ▄, ╲,_ ◢│\_╱▏\_∕_﹀ _;}—L ↘_〕-_╳ | \__F ↙ ﹍] ▏_∕
╲r▎◥〃└_▄〞↗╳ ▕_ ┘╳ ╲_↙▎↙↑_▕ ,┼▕ ﹨ ﹀` ▎` ̄ ↖ ̄} ╲
r┘ ▄ ◥▃▆┬╝└ ▎ ╲ ` ▏├  ̄\ ’︺▏可不可以偶爾下雨不必永遠晴天...
───────── 上方為使用者心情點播留言區,不代表本站立場 ────────
(A)nnounce 【 精華公佈欄 】
(F)avorite 【 我 的 最愛 】
> (C)lass 【 分組討論區 】
(M)ail 【 私人信件區 】
(T)alk 【 休閒聊天區 】
(U)ser 【 個人設定區 】
(X)yz 【 系統資訊區 】
(P)lay 【 娛樂與休閒 】
(N)amelist 【 編特別名單 】
(G)oodbye 離開,再見…
[8/26 星期一 3:37] [ 金牛時 ] 線上47893人, 我是et84121 [呼叫器]打開
len:1242
--------------------------------------------------
[0826 03:37:54][資訊] 批踢踢訊息 [登入成功]
[0826 03:37:54][除錯] 花費時間 [0.05]
[0826 03:37:54][資訊] 登入成功
[0826 03:37:54][除錯] 送出訊息 [b' \x1bOD\x1bOD\x1bOD\x1bOD\x1bODqsSteam\r\x03\x03 1\r$\x0c']
--------------------------------------------------
【板主:hn9480412/flyingwhale/LonyIce】本板禁止徵求買賣合購代購代刷
[←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明
編號 日 期 作 者 文 章 標 題 人氣:218
54326 +爆 8/25 Soaz □ [閒聊] G胖在上海
54327 + 2 8/25 yoseii □ [心得] Life is strange 2 第四章 很多劇透
54328 +24 8/25 cain1187 □ [CSGO] 實況主fl0m因轉播Berlin Major被Ban台
54329 +19 8/25 power907 □ [問題] MHW的接待員貓咪造型可以關掉嗎
54330 +85 8/25 yrs1224 □ [CSGO] S-L Berlin Major 2019 挑戰者組 Day 3
54331 + 5 8/25 LisaGi □ [心得] Wanna Survive 活屍戰棋
54332 8/25 becausemusic R: [問題] 找兩款很久以前的遊戲
54333 8/25 - □ (本文已被刪除) [chi1206]
54334 4 8/25 alanalg □ [限免] Winexy (indiegala)
543
len:712
--------------------------------------------------
--------------------------------------------------
【板主:hn9480412/flyingwhale/LonyIce】本板禁止徵求買賣合購代購代刷
[←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明
編號 日 期 作 者 文 章 標 題 人氣:218
54326 +爆 8/25 Soaz □ [閒聊] G胖在上海
54327 + 2 8/25 yoseii □ [心得] Life is strange 2 第四章 很多劇透
54328 +24 8/25 cain1187 □ [CSGO] 實況主fl0m因轉播Berlin Major被Ban台
54329 +19 8/25 power907 □ [問題] MHW的接待員貓咪造型可以關掉嗎
54330 +85 8/25 yrs1224 □ [CSGO] S-L Berlin Major 2019 挑戰者組 Day 3
54331 + 5 8/25 LisaGi □ [心得] Wanna Survive 活屍戰棋
54332 8/25 becausemusic R: [問題] 找兩款很久以前的遊戲
54333 8/25 - □ (本文已被刪除) [chi1206]
54334 4 8/25 alanalg □ [限免] Winexy (indiegala)
54335 15 8/25 jakert123 R: [情報] 《逆轉裁判123成步堂精選集》中文化確定
54336 12 8/25 cain1187 □ [Dota] Ti9 OG完成二連霸
54337 +18 8/25 Raidensnake □ [問題] stardew valley星露谷老婆的選擇
54338 +10 8/25 YOYOISGOOD □ [問題] 關於雙手把 正廠和副廠可以共用嗎?
54339 8/25 st12231 □ [實況] 空洞騎士 格林劇團開演【美哥】
54340 2 8/25 aad784900 □ [問題] 請問有類似「電影夢工場」的遊戲嗎
54341 + 8/26 aaronshell □ [閒聊] Titanfall 2 戰役真的短到嚇到(但超好玩R
★ 爆 5/30 flyingwhale □ [公告] 板務宣導/置底聊天區
★ m 5 9/15 flyingwhale □ [公告] Steam板板規/文章推薦區
★ ! 6/01 hn9480412 □ [公告] 交易文章使用說明(發文/推文前請詳閱)
> ★ 40 8/01 hn9480412 □ [公告] 8月置底遊戲交換區
文章選讀 (y)=PTT=[3
len:1328
--------------------------------------------------
[0826 03:37:54][除錯] 批踢踢訊息 [成功]
[0826 03:37:54][除錯] 花費時間 [0.05]
[0826 03:37:54][除錯] 找到最新編號 [54341]
[0826 03:37:54][除錯] 送出訊息 [b' \x1bOD\x1bOD\x1bOD\x1bOD\x1bODqsSteam\r\x03\x03 4444\rQ\x0c']
--------------------------------------------------
0m回應(X)推文(^X)轉錄 (=[]<>)相關主題(/?a)找標題/作者 (b)進板畫面
len:71
--------------------------------------------------
--------------------------------------------------
【板主:hn9480412/flyingwhale/LonyIce】本板禁止徵求買賣合購代購代刷
[←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明
編號 日 期 作 者 文 章 標 題 人氣:218
4434 m 1/01 zop R: 有玩TFC2的來自介一下吧
4435 m 1/01 tn703678 R: 有玩TFC2的來自介一下吧
4436 98 1/01 Siu □ [建議] 來寫2008年ID對照表吧XD
4437 1/01 onlyforu □ [問題] kode5 demo
4438 m 2 1/02 QuakeRz □ [情報] ESA兩岸三地交流資格賽 首場台灣vs大陸
4439 m 3 1/02 amgdaaaa □ [XD] TF2無用小常識分享
4440 6 1/02 cs80506 □ [買賣]Plantronics GAMECOM_PRO1 USB 專業耳麥
4441 3 1/02 Star123 □ [閒聊] 怎麼都沒人......
4442 m 1/02 sgouki R: 有玩TFC2的來自介一下吧
> 4444 6 1/03
len:838
--------------------------------------------------
--------------------------------------------------
【板主:hn9480412/flyingwhale/LonyIce】本板禁止徵求買賣合購代購代刷
[←]離開 [→]閱讀 [Ctrl-P]發表文章 [d]刪除 [z]精華區 [i]看板資訊/設定 [h]說明
編號 日 期 作 者 文 章 標 題 人氣:218
4434 m 1/01 zop R: 有玩TFC2的來自介一下吧
4435 m 1/01 tn703678 R: 有玩TFC2的來自介一下吧
4436 98 1/01 Siu □ [建議] 來寫2008年ID對照表吧XD
4437 1/01 onlyforu □ [問題] kode5 demo
4438 m 2 1/02 QuakeRz □ [情報] ESA兩岸三地交流資格賽 首場台灣vs大陸
4439 m 3 1/02 amgdaaaa □ [XD] TF2無用小常識分享
4440 6 1/02 cs80506 □ [買賣]Plantronics GAMECOM_PRO1 USB 專業耳麥
4441 3 1/02 Star123 □ [閒聊] 怎麼都沒人......
4442 m 1/02 sgouki R: 有玩TFC2的來自介一下吧
> 4444 6 1/03 Siu □ [公告] C-Strike 板 開始賭博!
┌─────────────────────────────────────┐
│ 文章代碼(AID): #17VB5YVd (Steam) [ptt.cc] [公告] C-Strike 板 開始賭博! │
│ 文章網址: https://www.ptt.cc/bbs/Steam/M.1199354210.A.7E7.html │
│ 這一篇文章值 0 Ptt幣 │
└─────────────────────────────────────┘
4451 m 1 1/04 How0428 R: 有玩TFC2的來自介一下吧
4452 4 1/04 nrevols □ [心得]被[BA]server ban了
4453 2 1/04 Siu □ [建議] 請按[V]投票
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ 請按任意鍵繼續 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
len:1458
--------------------------------------------------
[0826 03:37:54][除錯] 批踢踢訊息 [取得文章成功]
[0826 03:37:54][除錯] 花費時間 [0.04]
[0826 03:37:54][除錯] PostAID [17VB5YVd]
[0826 03:37:54][除錯] PostWeb [https://www.ptt.cc/bbs/Steam/M.1199354210.A.7E7.html]
[0826 03:37:54][除錯] PostMoney [0]
[0826 03:37:54][除錯] ListDate [1/03]
[0826 03:37:54][除錯] 送出訊息 [b'\r\r\x0c']
--------------------------------------------------
作者 Siu 看板 C-Strike
標題 [公告] C-Strike 板 開始賭博!
時間 Thu Jan 3 17:56:49 2008
───────────────────────────────────────
[測試]1月5日的比賽
請到 C-Strike 板 按'f'參與賭博!
一張 50 Ptt幣, 這是小賭式的賭博
賭盤結束時間: 01/05/2008 21:54:59 Sat
→ Siu:網址在4496篇 01/03 18:04
推 Star123:我每個都買一百張了XDDDDDDDDDD 01/03 19:33
→ QuakeRz:xDDD 不能說我買誰不然違反中壢 01/03 19:52
推 chatnoir:xDDD 不能說我買誰不然違反桃園 01/03 20:00
推 cloud6329:xDDD 不能說我買誰不然違反楊梅 01/
len:685
--------------------------------------------------
--------------------------------------------------
作者 Siu 看板 C-Strike
標題 [公告] C-Strike 板 開始賭博!
時間 Thu Jan 3 17:56:49 2008
───────────────────────────────────────
[測試]1月5日的比賽
請到 C-Strike 板 按'f'參與賭博!
一張 50 Ptt幣, 這是小賭式的賭博
賭盤結束時間: 01/05/2008 21:54:59 Sat
→ Siu:網址在4496篇 01/03 18:04
推 Star123:我每個都買一百張了XDDDDDDDDDD 01/03 19:33
→ QuakeRz:xDDD 不能說我買誰不然違反中壢 01/03 19:52
推 chatnoir:xDDD 不能說我買誰不然違反桃園 01/03 20:00
推 cloud6329:xDDD 不能說我買誰不然違反楊梅 01/03 23:06
推 ncr1126:xDDD 不能說我買誰不然違反新竹 01/03 23:36
推 LieTo: xDDD 不能說我買誰不然違反中和 01/05 13:21
推 Star123:xDDD 不能說我買誰不然違反批踢 01/05 14:13
瀏覽 第 1/1 頁 (100%) 目前顯示: 第 01~17 行 (y)回應(X%)推文(h)說明(←)離開
len:957
--------------------------------------------------
[0826 03:37:54][除錯] 批踢踢訊息 [瀏覽文章完成]
[0826 03:37:54][除錯] 花費時間 [0.07]
[0826 03:37:54][除錯] 作者 [Siu 看板 C-Strike]
[0826 03:37:54][除錯] 標題 [[公告] C-Strike 板 開始賭博!]
[0826 03:37:54][除錯] 日期 [Thu Jan 3 17:56:49 2008]
Traceback (most recent call last):
File "c:\Users\et841\.vscode\extensions\ms-python.python-2019.8.30787\pythonFiles\ptvsd_launcher.py", line 43, in <module>
main(ptvsdArgs)
File "c:\Users\et841\.vscode\extensions\ms-python.python-2019.8.30787\pythonFiles\lib\python\ptvsd\__main__.py", line 432, in main
run()
File "c:\Users\et841\.vscode\extensions\ms-python.python-2019.8.30787\pythonFiles\lib\python\ptvsd\__main__.py", line 316, in run_file
runpy.run_path(target, run_name='__main__')
File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\workeara\game\PttSteamCrawler\PTTLibrary_test.py", line 31, in <module>
PostIndex=4444
File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\Synchronize.py", line 11, in inner_wrapper
return f(*args, **kwargs)
File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\PTT.py", line 491, in getPost
SearchCondition
File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\PTT.py", line 960, in _getPost
IP=IP,
UnboundLocalError: local variable 'IP' referenced before assignment
當我用
ErrCode, Post = PTTBot.getPost(Board=Board, PostIndex=index)時
如果那篇文章是文字不足、不符合XX版等...
程式會直接崩潰登出, 目前我實在找不到避免得方法
懇請作者指點 謝謝。
能否在post 與mail的內容部分增加對上色字元的判定 並轉換成能正常上色的內容
因為有要發文用日文的需求,所以需要用的日文來發文,需要使用到big5uao編碼。
這是之前有研究發文的時候用的到的相關程式但是它是2.7的
https://gist.github.com/NEJmark/add42a5d812e2909c7aee24a42b23836/revisions
這是鄉民提出的建議,已經加入全新架構的開發中
PTTLibrary ver: 0.8.25
Platform: Windows10
今天嘗試了很多次都是同個錯誤碼,請問要怎麼解決ptt擋了websocket連線的問題呢?
是這周才開始遇到這問題的,在別台電腦上測試也是一樣的error codes
也想問一下造成403的原因是什麼
謝謝
PTTLibrary 0.8.7版 會因為無法得到文章的連結會出現問題
你好 這是我寫的PTT爬蟲
丟水球在第156行
https://github.com/vi000246/PTTOnlineTracker/blob/master/PTT.py
想問能不能將這個功能整合到PTTLibrary裡呢
用發錢功能的時候撞到的
File "ptt_money.py", line 62, in <module>
ptt_bot.give_money(a, 49)
File "/usr/local/miniconda3/lib/python3.8/site-packages/PyPtt/PTT.py", line 1265, in give_money
return _api_give_money.give_money(self, ptt_id, money)
File "/usr/local/miniconda3/lib/python3.8/site-packages/PyPtt/_api_give_money.py", line 44, in give_money
exceptions_=exceptions.UnknownError()
TypeError: __init__() missing 1 required positional argument: 'message'
看了你的 module,UnknownError
在初始化的時候的需要一個參數 message
,但是在 _api_give_money.py
裡面沒有給這個參數
導致只要跑這段 code 就一定會炸掉
推文內容若開頭跟結尾相同會有非預期的斷行
推文內容為123123123
PTTBot.push('test', PushType.Arrow, '123123123', 100)
應該產生一行推文且內容為 123123123
產生三行推文,內容分別為 123
問題發生於 Library.push
while TempEndIndex <= len(PushContent):
Temp = ''
while len(Temp.encode('big5')) < MaxPushLength:
Temp = PushContent[TempStartIndex:TempEndIndex]
if not len(Temp.encode('big5')) < MaxPushLength:
break
elif PushContent.endswith(Temp): # <===== 問題點
break
TempEndIndex += 1
PushList.append(Temp)
TempStartIndex = TempEndIndex
TempEndIndex = TempStartIndex + 1
中的
elif PushContent.endswith(Temp):
所以如果產生的Temp跟整個推文內容的結尾相同,就會產生非預期的斷行。
以下是我個人暫時的解法,還沒有仔細測試過各種狀況,給您參考一下
elif PushContent == Temp:
break
elif TempEndIndex > len(PushContent):
break
如題。
出現此畫面的話,程式會卡住,不會跑下一步,然後就登出登入無限loop。
文字
正在更新與同步線上使用者及好友名單,系統負荷量大時會需時較久...
◆ 請勿頻繁登入以免造成系統過度負荷 [按任意鍵繼續]
log
[01-17 01:22:43][資訊] 連線頻道 0 重啟
[01-17 01:22:43][資訊] 頻道 0 建立互動通道成功
[01-17 01:22:43][資訊] 頻道 0 輸入帳號
[01-17 01:22:43][資訊] 頻道 0 輸入密碼
[01-17 01:22:43][資訊] 頻道 0 讀取 PTT 畫面..
[01-17 01:22:44][資訊] 頻道 0 刪除重複登入的連線
[01-17 01:22:50][資訊] 任意鍵繼續
[01-17 01:22:50][資訊] 頻道 0 登入成功
[01-17 01:22:50][資訊] 斷線,重新連線
[01-17 01:22:50][資訊] 連線頻道 0 重啟
[01-17 01:22:50][資訊] 頻道 0 建立互動通道成功
[01-17 01:22:50][資訊] 頻道 0 輸入帳號
[01-17 01:22:50][資訊] 頻道 0 輸入密碼
[01-17 01:22:50][資訊] 頻道 0 讀取 PTT 畫面..
[01-17 01:22:51][資訊] 頻道 0 刪除重複登入的連線
我從國外使用ptt,連線的時間會比在台灣長很多,
使用預設的等待時間會不斷的出現timeout而無法使用,
我更改以下幾個數值後即可正常使用,請問是否能開放以下幾個參數為可設定呢?
(PTT.py line: 253 - 256)
PreWait = 0.01
EveryWait = 0.05
MaxEveryWait = 0.1
若作者大大允許,我可以發PR
如題,如果一次進行多次發錢,有機會出現 確定進行交易嗎? (y/N):
問題,因為沒有處理,所以會丟出 UnknownError
我認為在 _api_give_money.py
的 target_list
加這段,應該可以修好
connect_core.TargetUnit(
i18n.Transaction,
'確定進行交易嗎?',
response='y' + command.Enter
),
pip install PyPtt --upgrade
Collecting PyPtt
Using cached PyPtt-0.9.1.tar.gz (50 kB)
WARNING: Generating metadata for package PyPtt produced metadata for project name unknown. Fix your #egg=PyPtt fragments.
...
Installing collected packages: unknown
Attempting uninstall: unknown
Found existing installation: UNKNOWN 0.9.1
Uninstalling UNKNOWN-0.9.1:
Successfully uninstalled UNKNOWN-0.9.1
Running setup.py install for unknown ... done
Successfully installed unknown-0.9.1
又來許願了。希望可以支援操作 ptt2.cc。
程式碼
from PTTLibrary import PTT
ID = '****'
Password = '****'
PTTBot = PTT.Library()
ErrCode = PTTBot.login(ID, Password)
output:
[05-30 12:09:57][資訊] 偵測到前景執行使用編碼: cp950
[05-30 12:09:57][資訊] 產生 SSH 金鑰完成
[05-30 12:09:57][資訊] 使用者帳號: ****
[05-30 12:09:57][資訊] 密碼: *******
[05-30 12:09:57][資訊] 連線頻道 0 啟動
[05-30 12:10:08][資訊] 頻道 0 建立互動通道成功
[05-30 12:10:15][資訊] 頻道 0 輸入帳號
[05-30 12:10:15][資訊] 頻道 0 輸入密碼
[05-30 12:10:15][資訊] 頻道 0 讀取 PTT 畫面..
[05-30 12:10:15][資訊] 頻道 0 刪除重複登入的連線
[05-30 12:10:20][資訊] 任意鍵繼續
[05-30 12:10:20][資訊] 頻道 0 讀取 PTT 畫面..
[05-30 12:10:31][資訊] 超時斷線,重新連線
[05-30 12:10:31][資訊] 連線頻道 0 重啟
[05-30 12:10:38][資訊] 頻道 0 建立互動通道成功
[05-30 12:10:45][資訊] 頻道 0 輸入帳號
[05-30 12:10:45][資訊] 頻道 0 輸入密碼
[05-30 12:10:45][資訊] 頻道 0 讀取 PTT 畫面..
[05-30 12:10:46][資訊] 頻道 0 刪除重複登入的連線
[05-30 12:10:50][資訊] 任意鍵繼續
[05-30 12:10:50][資訊] 頻道 0 讀取 PTT 畫面..
[05-30 12:11:01][資訊] 超時斷線,重新連線
[05-30 12:11:01][資訊] 連線頻道 0 重啟
原本爬蟲爬到一半斷線,
後來連登入都不行
透過VPN重新執行後可以正常使用(疑似是因為IP 被ban?)
但在不使用VPN的情形下使用PCMan可以正常登入跟操作
範例︰
文章代碼(AID): #1QxJjbqT (asciiart) [ptt.cc] [ANSI] 龍貓
文章網址: https://www.ptt.cc/bbs/asciiart/M.1525496677.A.D1D.html
這是用 PTTLibrary 抓下來的︰
66. [asciiart] [ANSI] 龍貓 [CAMIYA (CAMIYA)] (20180505130434).zip
我希望能有一個選項可以選擇不要自動換行,保持每行完整。
P.S. 若想在網頁版看大圖,可以加以下的 CSS 讓內容不要自動換行︰
#main-content {
white-space: pre;
}
原本以為是經過編輯的會抓不到,
但經過我用以下程式碼測試:
from PTTLibrary import PTT
bot = PTT.Library(kickOtherLogin=False)
bot.login(ID, PW)
err, NewestIndex = bot.getNewestIndex(Board='Gossiping')
for i in range(100): # 可改更大
err, post = bot.getPost(Board="Gossiping", PostIndex=NewestIndex - i)
if err == PTT.ErrorCode.PostDeleted:
bot.Log('文章已經被刪除')
continue
elif err != PTT.ErrorCode.Success:
bot.Log('使用文章編號取得文章詳細資訊失敗 錯誤碼: ' + str(err))
continue
if post.getPushList() == []:
bot.Log(post.getWebUrl())
bot.logout()
經我手動查閱有以下幾篇有推文卻未抓出:
未編輯:
https://www.ptt.cc/bbs/Gossiping/M.1538366318.A.C0C.html
https://www.ptt.cc/bbs/Gossiping/M.1538367360.A.D2B.html
https://www.ptt.cc/bbs/Gossiping/M.1538368209.A.7FE.html
有編輯:
https://www.ptt.cc/bbs/Gossiping/M.1538368902.A.15F.html
開發時用pythone.exe正常的在跑,但是想要用在背景執行的pythonw.exe跑的時候就沒有反應了。
python版本 3.6.2
os: windows 10
使用功能流程: 登入(不覆蓋重複登入)->到test板po文就結束了
最近發文,系統不再是說發文成功,而是顯示以下字串
順利貼出佈告,本篇文章不列入記錄,敬請包涵
但是程式沒判斷到這段,導致顯示失敗。
是否有考慮向PEP8規範靠攏?
使用此library的時候一直有PEP8 violation warning
程式碼風格也不pythonic
例如 Gossiping 796897 應該要抓到 180.217.210.109
from PTTLibrary import PTT
ptt = PTT.Library(kickOtherLogin=False)
err_code = ptt.login(u, p)
if err_code != PTT.ErrorCode.Success:
print('failed to login')
exit(1)
err_code, post = ptt.getPost('Gossiping', PostIndex=796897)
if err_code == PTT.ErrorCode.Success:
print(post.getTitle())
print(post.getIP())
print(type(post.getIP()))
output:
[新聞] G20峰會川普發聲:**害了我們25年了!
[]
<class 'str'>
餓死抬頭
我試過好多冷門版都一樣找得到R
如果是我的問題的話先說聲抱歉了
"Place module docstring here"
import os
from PTTLibrary import PTT
PTT_BOT = PTT.Library(
# 目前支援繁體中文與英文
# (預設值) Chinese
# Language=PTT.Language.Chinese,
# Language=PTT.Language.English,
# 有三個等級可以選擇
# (預設值) INFO
# LogLevel=PTT.LogLevel.INFO,
# LogLevel=PTT.LogLevel.TRACE,
LogLevel=PTT.LogLevel.DEBUG,
)
try:
PTT_BOT.login(
os.getenv('PTT_USER_NAME', 'PTT_USER_NAME Not found'),
os.getenv('PTT_USER_PASSWORD', 'PTT_USER_PASSWORD Not found'),
KickOtherLogin=False
)
except PTT.Exceptions.LoginError:
PTT_BOT.log('登入失敗')
PTT_BOT.log('登入成功')
board = 'Steam'
Post = PTT_BOT.getPost(
board,
PostIndex=PTT_BOT.getNewestIndex(PTT.IndexType.Board, Board=board)-9
)
print(Post.getTitle())
PTT_BOT.logout()
PTT Library v 0.8.10
Developed by PTT CodingMan
[0825 22:44:24][資訊] 繁體中文語言模組 [初始化]
[0825 22:44:24][資訊] 連線核心 [初始化]
[0825 22:44:24][資訊] 批踢踢函式庫 v 0.8.10 [初始化]
[0825 22:44:24][資訊] 登入帳號 [et84121]
[0825 22:44:24][資訊] 連線核心 [啟動]
[0825 22:44:24][資訊] 連線批踢踢 [WebSocket]
[0825 22:44:24][除錯] 送出訊息
[0825 22:44:24][資訊] 批踢踢訊息 [登入中,請稍候]
[0825 22:44:24][除錯] 花費時間 [0.11]
[0825 22:44:24][除錯] 送出訊息 [b'\x0c']
[0825 22:44:25][資訊] 批踢踢訊息 [不剔除其他登入]
[0825 22:44:25][除錯] 花費時間 [0.43]
[0825 22:44:25][除錯] 送出訊息 [b'n\r\x0c']
[0825 22:44:25][資訊] 批踢踢訊息 [不剔除其他登入]
[0825 22:44:25][除錯] 花費時間 [0.0]
[0825 22:44:25][除錯] 送出訊息 [b'n\r\x0c']
[0825 22:44:26][資訊] 批踢踢訊息 [請按任意鍵繼續]
[0825 22:44:26][除錯] 花費時間 [1.49]
runpy.run_path(target, run_name='__main__')
File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 263, in run_path
pkg_name=pkg_name, script_name=fname)
File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 96, in _run_module_code
mod_name, mod_spec, pkg_name, script_name)
File "C:\Users\et841\AppData\Local\Programs\Python\Python37\Lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "c:\workeara\game\PttSteamCrawler\test.py", line 31, in <module>
PostIndex=PTT_BOT.getNewestIndex(PTT.IndexType.Board, Board=board)-9
File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\Synchronize.py", line 11, in inner_wrapper
return f(*args, **kwargs)
File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\PTT.py", line 491, in getPost
SearchCondition
File "C:\Users\et841\.virtualenvs\PttSteamCrawler-wCWn5R4I\lib\site-packages\PTTLibrary\PTT.py", line 606, in _getPost
raise Exceptions.NoSuchBoard(Board)
PTTLibrary.Exceptions.NoSuchBoard: 無該版面: Steam
目前的文章標題是由文章前幾行提出,但事實上 PTT 的文章標題是可以被移動,甚至刪除的。例︰
https://www.ptt.cc/bbs/asciiart/M.1529136658.A.F58.html
一個比較可靠的方法是在文章列表按大 T,就可以看到完整的文章標題︰
但這只對自己發的文有用。
另一個方法是按 ^x 轉錄、或按 y 回覆該文章︰
但是標題會因為前面增加了 Re:
或 Fw:
而少了 4 個字元。
還有一個方法︰1) 先以大 F 把文章轉到信箱,並進入信箱(若要擷取的文章本來就在信箱裡,可省略這步驟)。2) 在文章前按小 x,把信轉給自己。此時就會顯示完整標題︰
在 utf-8 模式下,雙色字無法被正確上色。希望能新增一個選項,用來取得 big5 編碼下的原始資料。類似︰
bot = PTT.Library(user, password, raw=True)
content = bot.getMail(index).content
assert isinstance(content, bytes) # content 是 bytes
cleaned_content = clean_screen(content) # 移除 esc code
text = cleaned_content.decode("big5-uao") # 純文字
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.