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 21 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
Jun 02 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
python单例模式获取IP代理的方法详解
Sep 13 Python
pandas对dataFrame中某一个列的数据进行处理的方法
Jul 08 Python
Python 实现向word(docx)中输出
Feb 13 Python
PYcharm 激活方法(推荐)
Mar 23 Python
Python利用PyPDF2库获取PDF文件总页码实例
Apr 03 Python
python代码能做成软件吗
Jul 24 Python
Django中使用Celery的方法步骤
Dec 07 Python
详解Java中一维、二维数组在内存中的结构
Feb 11 Python
Python快速实现一键抠图功能的全过程
Jun 29 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
法国:浪漫之都的咖啡文化
2021/03/03 咖啡文化
PHP cdata 处理(详细介绍)
2013/07/05 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
php判断是否连接上网络的方法实例详解
2016/12/14 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
2018/05/24 PHP
Jquery 基础学习笔记
2009/05/29 Javascript
Raphael带文本标签可拖动的图形实现代码
2013/02/20 Javascript
jQuery模拟超链接点击效果代码
2013/04/21 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
jQuery图片轮播滚动切换代码分享
2020/04/20 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
2015/11/20 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
浅析node应用的timing-attack安全漏洞
2018/02/28 Javascript
react 创建单例组件的方法
2018/04/26 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
vue实现分页加载效果
2019/12/24 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
ant design vue导航菜单与路由配置操作
2020/10/28 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
Centos Python2 升级到Python3的简单实现
2016/06/21 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
2018/02/10 Python
python存储16bit和32bit图像的实例
2018/12/05 Python
Python字典的核心底层原理讲解
2019/01/24 Python
python orm 框架中sqlalchemy用法实例详解
2020/02/02 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
利用纯CSS3实现tab选项卡切换示例代码
2016/09/21 HTML / CSS
如何拷贝一整个Java对象,包括它的状态
2013/12/27 面试题
高中的自我鉴定
2013/12/16 职场文书
小学毕业感言50字
2014/02/16 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
写给纪委的违纪检讨书
2015/05/05 职场文书
校园安全主题班会
2015/08/12 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
2022/04/02 Servers