首先使用Chrome瀏覽器查看登入和操作的過程中發送了哪些資料,然後使用庫實現參數post,以獲得網頁。
現在可以正常登入退出,以後應該增加對網頁的分析,這才是這個指令碼的目的。
具體代碼如下:
#coding=utf-8import sys,urllib,urllib2,timefrom HTMLParser import HTMLParserclass Bbs: def __init__(self): self.url='http://bbs.ustc.edu.cn/cgi/bbsindex' self.psy_url='http://bbs.ustc.edu.cn/cgi/bbstdoc?board=Psychology' self.loginurl='http://bbs.ustc.edu.cn/cgi/bbslogin' self.logouturl='http://bbs.ustc.edu.cn/cgi/bbslogout' self.sec_url='http://bbs.ustc.edu.cn/cgi/bbsdoc?board=SecondHand' userid='***' userpw='***' self.params = urllib.urlencode([('id',userid), ('pw',userpw)]) def login(self): self.req= urllib2.Request(self.loginurl) self.fd = urllib2.urlopen(self.req,self.params) self.data = self.fd.read(1024) print self.data print '\nLogin Success\n' def logout(self): self.req = urllib2.Request(self.logouturl) self.fd = urllib2.urlopen(self.req) self.data = self.fd.read(1024) #sys.stdout.write(self.data) print '\nLogout Success\n' def get_psy(self): # default in theme mode self.req = urllib2.Request(self.psy_url) self.fd = urllib2.urlopen(self.req) self.fd = urllib2.urlopen(self.req) self.data = self.fd.read() print self.data print '\nPsy Success\n' def get_sec(self): # default in theme mode self.req = urllib2.Request(self.sec_url) self.fd = urllib2.urlopen(self.req) time.sleep(1) self.fd = urllib2.urlopen(self.req) self.data = self.fd.read() print self.data print '\nPsy Success\n'bbs=Bbs()time.sleep(1)bbs.get_sec()time.sleep(1)bbs.logout()
以後有時間會進一步完善。