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使用os模块的os.walk遍历文件夹示例
Jan 27 Python
Python文件及目录操作实例详解
Jun 04 Python
python协程用法实例分析
Jun 04 Python
win10系统中安装scrapy-1.1
Jul 03 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
在python win系统下 打开TXT文件的实例
Apr 29 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
Python读写csv文件流程及异常解决
Oct 20 Python
python爬虫如何解决图片验证码
Feb 14 Python
python中time tzset()函数实例用法
Feb 18 Python
python自动化八大定位元素讲解
Jul 09 Python
python高温预警数据获取实例
Jul 23 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中读写文件实现代码
2011/10/20 PHP
php绘制一条弧线的方法
2015/01/24 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
2019/03/22 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
javascript中的float运算精度实例分析
2010/08/21 Javascript
JQuery小知识
2010/10/15 Javascript
使用javascript实现有效时间的控制,并显示将要过期的时间
2014/01/02 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
node.js 中间件express-session使用详解
2017/05/20 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
JavaScript引用类型Object常见用法实例分析
2018/08/08 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
IDEA安装vue插件图文详解
2019/09/26 Javascript
js实现简易计算器功能
2019/10/18 Javascript
JavaScript(js)处理的HTML事件、键盘事件、鼠标事件简单示例
2019/11/19 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
Python退火算法在高次方程的应用
2018/07/26 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
opencv3/C++图像像素操作详解
2019/12/10 Python
python异常处理和日志处理方式
2019/12/24 Python
CSS3制作炫酷的下拉菜单及弹起式选单的实例分享
2016/05/17 HTML / CSS
英国著名国际平价时尚男装品牌:Topman
2016/08/27 全球购物
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
介绍一下linux的文件权限
2014/07/20 面试题
总经理职责范文
2013/11/08 职场文书
调解员先进事迹材料
2014/02/07 职场文书
同居协议书范本
2014/04/23 职场文书
优秀护士演讲稿
2014/04/30 职场文书
2014年稽查工作总结
2014/12/20 职场文书
高一化学教学反思
2016/02/22 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang