本文執行個體講述了python實現自動登入人人網並採集資訊的方法。分享給大家供大家參考。具體實現方法如下:
#!/usr/bin/python# -*- coding: utf-8 -*-import sysimport reimport urllib2import urllibimport cookielibclass Renren(object): def __init__(self): self.name = self.pwd = self.content = self.domain = self.origURL = '' self.operate = ''#登入進去的操作對象 self.cj = cookielib.LWPCookieJar() try: self.cj.revert('./renren.coockie') except Exception,e: print e self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj)) urllib2.install_opener(self.opener) def setinfo(self,username,password,domain,origURL): '''設定使用者登入資訊''' self.name = username self.pwd = password self.domain = domain self.origURL = origURL def login(self): '''登入人人網''' params = { 'domain':self.domain, 'origURL':self.origURL, 'email':self.name, 'password':self.pwd} print 'login.......' req = urllib2.Request( 'http://www.renren.com/PLogin.do', urllib.urlencode(params) ) self.file=urllib2.urlopen(req).read() newsfeed = open('news.html','w') try: newsfeed.write(self.file) except Exception, e: newsfeed.close() self.operate = self.opener.open(req) print type(self.operate) print self.operate.geturl() if self.operate.geturl(): print 'Logged on successfully!' self.cj.save('./renren.coockie') self.__viewnewinfo() else: print 'Logged on error' def __viewnewinfo(self): '''查看好友的更新狀態''' self.__caiinfo() def __caiinfo(self): '''採集資訊''' h3patten = re.compile('(.*?)')#匹配範圍 apatten = re.compile('(.+):')#匹配作者 cpatten = re.compile('(.+)\s')#匹配內容 content = h3patten.findall(self.file) print len(content) infocontent = self.operate.readlines() print type(infocontent) print 'friend newinfo:' for i in infocontent: content = h3patten.findall(i) if len(content) != 0: for m in content: username = apatten.findall(m) info = cpatten.findall(m) if len(username) !=0: print username[0],'說:',info[0] print '----------------------------------------------' else: continueren = Renren()username = 'username'#你的人人網的帳號password = 'password'#你的人人網的密碼domain = 'www.renren.com'#人人網的地址origURL = 'http://www.renren.com/home'#人人網登入以後的地址ren.setinfo(username,password,domain,origURL)ren.login()
希望本文所述對大家的Python序設計有所協助。