作者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
1F:推 kdjf:2,ptt只能Z99吧? 03/27 21:25
2F:→ eric541:但是我手动操作Z100是可搜寻爆文的? 03/27 22:27
3F:推 ming1053:你需要参考 vt100 的 spec 03/28 18:47
4F:→ ming1053:BBS不会更新全部的画面 例如按下 只更新附近的行数 03/28 18:47
5F:→ ming1053:你需要自己 simulate 一个画面 根据控制码更新画面 03/28 18:48
6F:→ eric541:谢谢m大指教 03/28 21:28
8F:→ kdjf:我都是送一个ctrl+L,让ptt帮我重画 03/29 22:19