首先使用Chrome浏览器查看登录和操作的过程中发送了哪些数据,然后使用库实现参数post,以获得网页。
现在可以正常登录退出,以后应该增加对网页的分析,这才是这个脚本的目的。
具体代码如下:
- #coding=utf-8
- import sys,urllib,urllib2,time
- from HTMLParser import HTMLParser
- class 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()