[問題] Telnetlib做BBS Crawler?

看板Python作者 (YcK)時間12年前 (2013/03/27 10:32), 編輯推噓2(206)
留言8則, 4人參與, 最新討論串1/1
各位先進大家好~ 小弟是Python初學者 最近想用telnetlib來做一個PTT的自動爬文程式 參考了官方文件,跟一些以前做過類似需求的文章 可是還是遇到了一些瓶頸想來請問各位 先附上我的Code tn = telnetlib.Telnet('ptt.cc') tn.expect(['請輸入代號']) tn.write('Account\r\n') tn.expect(['請輸入您的密碼']) tn.write('Password\r\n') print '登入完成' tn.expect(['您想刪除其他重複登入的連線嗎'], 10) print '有其他重複的連線,刪除!' tn.write('y\r\n') print '主功能表' tn.expect(['呼叫器'], 10) tn.write('sgossiping\r\n') #登入八卦版 進入八卦板之後我就卡住了,不知道該怎麼繼續做下去 有幾點問題想請教: 1.tn.expect(['呼叫器'], 10)這行 我不知道怎麼判斷一個頁面結尾的pattern,所以找了畫面最右下角的東西來塞 這種方式感覺很奇怪,有別的方式嗎? 2.進入八卦板之後我想搜尋全部的爆文,然後抓回來, 可是我如果用-tn.write("Z100\r\n")資料會出在很詭異的地方,不是頭也不是尾  而且文章也不是爆的,這是為什麼? 3.用tn.expect出來的字串很雜亂,裡面包含控制碼跟一堆空格,有高手可以 提點一下這個該怎麼處理嗎? 4.進入文章要捲動到底部把整篇抓完,這個我完全沒有頭緒.... 以上~有沒有做過BBS爬蟲的人能夠給我一些建議呢? 萬分感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.193.162

03/27 21:25, , 1F
2,ptt只能Z99吧?
03/27 21:25, 1F

03/27 22:27, , 2F
但是我手動操作Z100是可搜尋爆文的?
03/27 22:27, 2F

03/28 18:47, , 3F
你需要參考 vt100 的 spec
03/28 18:47, 3F

03/28 18:47, , 4F
BBS不會更新全部的畫面 例如按下 只更新附近的行數
03/28 18:47, 4F

03/28 18:48, , 5F
你需要自己 simulate 一個畫面 根據控制碼更新畫面
03/28 18:48, 5F

03/28 21:28, , 6F
謝謝m大指教
03/28 21:28, 6F

03/29 13:12, , 7F
03/29 13:12, 7F

03/29 22:19, , 8F
我都是送一個ctrl+L,讓ptt幫我重畫
03/29 22:19, 8F
文章代碼(AID): #1HKigv9- (Python)