使用到的 Python 库包括 urllib, urllib2, cookielibhtml
因为目标网站使用简单的 form-submit 结构,因此能够省去不少事。python
基本过程是经过 urllib2.build_opener() 创建新的打开连接的方式,这种打开方式包含 cookie 信息,从而维护一个登陆的 session,而后依据这个 session 以登陆用户的身份查询信息。cookie
借用了[1]中的一些代码,最后的样子以下session
class Crawl(object): def __init__(self): self.operation = None # 初始化一个CookieJar来处理Cookie self.cj = cookielib.CookieJar() # 实例化一个全局opener self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj)) urllib2.install_opener(self.opener) def login(self, url=None, email=None, passwd=None): postdata = {'login_email': email, 'login_password': passwd, 'origURL': url, } self.operation = self._get_response(url, postdata) curl = self.operation.geturl() session_pattern = re.compile(r'jsessionid=(\w+)') suid = session_pattern.search(curl) if suid: print 'login success' return True else: print 'login failed' return False def _get_response(self, url, data=None): if data is not None: # 获取cookie req = urllib2.Request(url, urllib.urlencode(data)) else: # 访问主页,自动带着cookie信息 req = urllib2.Request(url) response = self.opener.open(req) return response
参考资料:curl
[1]. [Python代码]人人网登陆脚本, http://www.pythoner.com/65.htmlpost
[2]. 用Python模拟登陆网站, http://www.nowamagic.net/academy/detail/1302882网站