作者eric541 (YcK)
看板Python
標題[問題] Telnetlib做BBS Crawler?
時間Wed Mar 27 18:32:19 2013
各位先進大家好~
小弟是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
推 kdjf:2,ptt只能Z99吧? 03/27 21:25
→ eric541:但是我手動操作Z100是可搜尋爆文的? 03/27 22:27
推 ming1053:你需要參考 vt100 的 spec 03/28 18:47
→ ming1053:BBS不會更新全部的畫面 例如按下 只更新附近的行數 03/28 18:47
→ ming1053:你需要自己 simulate 一個畫面 根據控制碼更新畫面 03/28 18:48
→ eric541:謝謝m大指教 03/28 21:28
→ kdjf:我都是送一個ctrl+L,讓ptt幫我重畫 03/29 22:19