python cookielib 登录人人网的实现代码


Posted in Python onDecember 19, 2012

先上脚本吧,等下来讲下知识点:

#!/usr/bin/env python 
#encoding=utf-8 
import sys 
import re 
import urllib2 
import urllib 
import cookielib class 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.operate = self.opener.open(req) 
if self.operate.geturl() == 'http://www.renren.com/Home.do': 
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('<h3>(.*?)</h3>')#匹配范围 
apatten = re.compile('<a.+>(.+)</a>:')#匹配作者 
cpatten = re.compile('</a>(.+)\s')#匹配内容 
infocontent = self.operate.readlines() 
# print 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: 
continue 
ren = Renren() 
username = ''#你的人人网的帐号 
password = ''#你的人人网的密码 
domain = 'renren.com'#人人网的地址 
origURL = 'http://www.renren.com/Home.do'#人人网登录以后的地址 
ren.setinfo(username,password,domain,origURL) 
ren.login()

主要用到了python cookielib,urllib2,urllib这3个模块,这3个模块是python做http这方面比较好的模块.

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)
这几行是在本地建立人人网的cookies,因为人人网要验证cookies才能登录,你运行这个脚本的话,会发现在当前目录 有个程序会自动建立一个renren.cookie这个文件。

我这里renren.cookie的信息是: #LWP-Cookies-2.0 Set-Cookie3: WebOnLineNotice_244225225=1; path="/"; domain=".renren.com"; path_spec; domain_dot; expires="2010-04-11 06:59:33Z"; version=0 总结一下如果网站登录要用cookie的话,就要用到cookielib这个模块,不然你用程序登录不了网站,过断时间在写个urlib的例子,大家可以先用上面这个脚本玩玩!体会下python 人人网代码的乐趣!

Python 相关文章推荐
python解决字典中的值是列表问题的方法
Mar 04 Python
Python3实现的腾讯微博自动发帖小工具
Nov 11 Python
python超简单解决约瑟夫环问题
May 12 Python
python基础教程之分支、循环简单用法
Jun 16 Python
Python OpenCV处理图像之滤镜和图像运算
Jul 10 Python
详解Python:面向对象编程
Apr 10 Python
python 实现将多条曲线画在一幅图上的方法
Jul 07 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
keras训练浅层卷积网络并保存和加载模型实例
Jul 02 Python
用python写爬虫简单吗
Jul 28 Python
用 python 进行微信好友信息分析
Nov 28 Python
python模板入门教程之flask Jinja
Apr 11 Python
python 多线程应用介绍
Dec 19 #Python
Python多线程学习资料
Dec 19 #Python
python搭建简易服务器分析与实现
Dec 15 #Python
Python笔记(叁)继续学习
Oct 24 #Python
python笔记(2)
Oct 24 #Python
python笔记(1) 关于我们应不应该继续学习python
Oct 24 #Python
Python的一些用法分享
Oct 07 #Python
You might like
PHP循环结构实例讲解
2014/02/10 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
php获取linux命令结果的实例
2017/03/13 PHP
htm调用JS代码
2007/03/15 Javascript
使用jQuery轻松实现Ajax的实例代码
2010/08/16 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
js实现的点击div区域外隐藏div区域
2014/06/30 Javascript
JavaScript代码应该放在HTML代码哪个位置比较好?
2014/10/16 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
详解基于Node.js的微信JS-SDK后端接口实现代码
2017/07/15 Javascript
cropper js基于vue的图片裁剪上传功能的实现代码
2018/03/01 Javascript
使用Vue的slot插槽分发父组件内容实现高度复用、更加灵活的组件(推荐)
2018/05/01 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
Vue.js自定义指令学习使用详解
2019/10/19 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
node.js使用zlib模块进行数据压缩和解压操作示例
2020/02/12 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
python处理csv数据的方法
2015/03/11 Python
python中pip的安装与使用教程
2018/08/10 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
python tkinter 设置窗口大小不可缩放实例
2020/03/04 Python
python使用hdfs3模块对hdfs进行操作详解
2020/06/06 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
群众路线批评与自我批评
2014/02/06 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL
php双向队列实例讲解
2021/11/17 PHP