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中bisect模块用法实例
Sep 25 Python
详解Django框架中的视图级缓存
Jul 23 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
Python实现的排列组合计算操作示例
Oct 13 Python
Python中static相关知识小结
Jan 02 Python
利用python画出折线图
Jul 26 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
Python网页正文转换语音文件的操作方法
Dec 09 Python
python3常用的数据清洗方法(小结)
Oct 31 Python
pytorch-神经网络拟合曲线实例
Jan 15 Python
python matplotlib实现将图例放在图外
Apr 17 Python
解决Python发送Http请求时,中文乱码的问题
Apr 30 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遍历数组的4种方法总结
2014/07/05 PHP
CI框架学习笔记(二) -入口文件index.php
2014/10/27 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
PHP面向对象程序设计高级特性详解(接口,继承,抽象类,析构,克隆等)
2016/12/02 PHP
高性能web开发 如何加载JS,JS应该放在什么位置?
2010/05/14 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
javascript学习笔记(四)function函数部分
2014/09/30 Javascript
jQuery中find()方法用法实例
2015/01/07 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
js中利用tagname和id获取元素的方法
2016/01/03 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
JS+CSS3模拟溢出滚动效果
2016/08/12 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
AngularJS实现单一页面内设置跳转路由的方法
2017/06/28 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
2017/08/14 Javascript
vue实现移动端悬浮窗效果
2018/12/01 Javascript
VeeValidate 的使用场景以及配置详解
2019/01/11 Javascript
jQuery轮播图功能制作方法详解
2019/12/03 jQuery
Nuxt pages下不同的页面对应layout下的页面布局操作
2020/11/05 Javascript
python冒泡排序算法的实现代码
2013/11/21 Python
Django框架 querySet功能解析
2019/09/04 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
2019/09/04 Python
python+pygame实现坦克大战
2019/09/10 Python
使用tensorflow DataSet实现高效加载变长文本输入
2020/01/20 Python
浅谈PyTorch的可重复性问题(如何使实验结果可复现)
2020/02/20 Python
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
Ariat英国官网:为世界顶级马术运动员制造最优质的鞋类和服装
2020/02/14 全球购物
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
程序运行正确, 但退出时却"core dump"了,怎么回事
2014/02/19 面试题
学生干部学习的自我评价
2014/02/18 职场文书
婚假请假条怎么写
2014/04/10 职场文书
调研座谈会发言材料
2014/08/23 职场文书