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内置的HTTP协议服务器SimpleHTTPServer使用指南
Mar 30 Python
python登录并爬取淘宝信息代码示例
Dec 09 Python
理解python中生成器用法
Dec 20 Python
Django 视图层(view)的使用
Nov 09 Python
Python控制Firefox方法总结
Jun 03 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
Python学习笔记之字符串和字符串方法实例详解
Aug 22 Python
详解Python3 pickle模块用法
Sep 16 Python
Python实现转换图片背景颜色代码
Apr 30 Python
opencv python 对指针仪表读数识别的两种方式
Jan 14 Python
Python运算符+与+=的方法实例
Feb 18 Python
pytorch实现手写数字图片识别
May 20 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
《逃离塔科夫》——“萌新劝退,老手自嗨”的硬核FPS游戏
2020/04/03 其他游戏
ThinkPHP快速入门实例教程之数据分页
2014/07/01 PHP
PHP学习笔记(三):数据类型转换与常量介绍
2015/04/17 PHP
window.js 主要包含了页面的一些操作
2009/12/23 Javascript
统计出现最多的字符次数的js代码
2010/12/03 Javascript
js里怎么取select标签里的值并修改
2012/12/10 Javascript
JQ实现新浪游戏首页幻灯片
2015/07/29 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
jquery replace方法去空格
2017/05/08 jQuery
轻松理解vue的双向数据绑定问题
2017/10/30 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
细说Vue组件的服务器端渲染的过程
2019/05/30 Javascript
Node.js实现批量下载图片简单操作示例
2020/01/18 Javascript
angular组件间通讯的实现方法示例
2020/05/07 Javascript
vue.js 输入框输入值自动过滤特殊字符替换中问标点操作
2020/08/31 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
python django事务transaction源码分析详解
2017/03/17 Python
Python编程argparse入门浅析
2018/02/07 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
Django 迁移、操作数据库的方法
2019/08/02 Python
如何基于python实现归一化处理
2020/01/20 Python
关于canvas绘制模糊问题的解决方法
2019/09/24 HTML / CSS
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
2013/02/17 面试题
餐饮营销方案
2014/02/23 职场文书
员工安全生产承诺书
2014/05/22 职场文书
2014年副班长工作总结
2014/12/10 职场文书
人事局接收函
2015/01/30 职场文书
升学宴来宾致辞
2015/07/27 职场文书
2015年教师节感言
2015/08/03 职场文书
高一军训感想
2015/08/07 职场文书
python unittest单元测试的步骤分析
2021/08/02 Python
JavaScript前端面试扁平数据转tree与tree数据扁平化
2022/06/14 Javascript