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 中pandas.read_excel详细介绍
Jun 23 Python
Python实现的自定义多线程多进程类示例
Mar 23 Python
pandas表连接 索引上的合并方法
Jun 08 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
在Python中字典根据多项规则排序的方法
Jan 21 Python
python 缺失值处理的方法(Imputation)
Jul 02 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
Python之指数与E记法的区别详解
Nov 21 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
Python 操作SQLite数据库的示例
Oct 16 Python
如何获取numpy array前N个最大值
May 14 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
Windows中安装Apache2和PHP4权威指南
2006/11/18 PHP
PHP 反向排序和随机排序代码
2010/06/30 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
Require.JS中的几种define定义方式示例
2017/06/01 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
JavaScript数组去重的几种方法
2019/04/07 Javascript
vue中img src 动态加载本地json的图片路径写法
2019/04/25 Javascript
vue-week-picker实现支持按周切换的日历
2019/06/26 Javascript
Nodejs使用archiver-zip-encrypted库加密压缩文件时报错(解决方案)
2019/11/18 NodeJs
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
Python利用Beautiful Soup模块搜索内容详解
2017/03/29 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
TensorFlow实现简单卷积神经网络
2018/05/24 Python
HTML5+CSS3 诱人的实例:3D立方体旋转动画实例
2016/12/30 HTML / CSS
教你使用Canvas处理图片的方法
2017/11/28 HTML / CSS
期中考试反思800字
2014/05/01 职场文书
中学生秋季运动会广播稿
2014/09/21 职场文书
领导四风问题整改措施思想汇报
2014/10/13 职场文书
元宵节寄语大全
2015/02/27 职场文书
爱护环境建议书
2015/09/14 职场文书
Python实现文本文件拆分写入到多个文本文件的方法
2021/04/18 Python
Python中glob库实现文件名的匹配
2021/06/18 Python
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android