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即时网络爬虫项目启动说明详解
Feb 23 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
Apr 02 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
python多任务及返回值的处理方法
Jan 22 Python
python pygame实现五子棋小游戏
Oct 26 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
使用Python函数进行模块化的实现
Nov 15 Python
matplotlib.pyplot画图并导出保存的实例
Dec 07 Python
快速查找Python安装路径方法
Feb 06 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
Python导入数值型Excel数据并生成矩阵操作
Jun 09 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 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
消息持续发送的完整例子
2006/10/09 PHP
上传多个文件的PHP脚本
2006/11/26 PHP
php修改NetBeans默认字体的大小
2013/07/02 PHP
php UNIX时间戳用法详解
2017/02/16 PHP
jquery blockUI 遮罩不能消失与不能提交的解决方法
2011/09/17 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
jQuery中is()方法用法实例
2015/01/06 Javascript
easyui Droppable组件实现放置特效
2015/08/19 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
JQUERY的AJAX请求缓存里的数据问题处理
2016/02/23 Javascript
分享12个非常实用的JavaScript小技巧
2016/05/11 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
nodejs基础知识
2017/02/03 NodeJs
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
2017/04/20 Javascript
Vue cli3 库模式搭建组件库并发布到 npm的流程
2018/10/12 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
python实现简单名片管理系统
2018/11/30 Python
python类的实例化问题解决
2019/08/31 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
KTV的创业计划书范文
2014/02/02 职场文书
工程项目建议书范文
2014/03/12 职场文书
抽样调查项目计划书
2014/04/24 职场文书
干部选拔任用方案
2014/05/26 职场文书
2014年团支部年度工作总结
2014/12/24 职场文书
停电放假通知
2015/04/14 职场文书
村级干部党员公开承诺事项
2015/05/04 职场文书
党支部综合考察意见
2015/06/01 职场文书
初婚初育证明范本
2015/06/18 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
Nginx如何获取自定义请求header头和URL参数详解
2022/07/23 Servers