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判断端口是否打开的实现代码
Feb 10 Python
Python中利用函数装饰器实现备忘功能
Mar 30 Python
python执行get提交的方法
Apr 29 Python
Python教程之全局变量用法
Jun 27 Python
python中实现将多个print输出合成一个数组
Apr 19 Python
tensorflow: 查看 tensor详细数值方法
Jun 13 Python
用Anaconda安装本地python包的方法及路径问题(图文)
Jul 16 Python
Python 获取项目根路径的代码
Sep 27 Python
python3实现网页版raspberry pi(树莓派)小车控制
Feb 12 Python
python实现密码强度校验
Mar 18 Python
Python3.8.2安装包及安装教程图文详解(附安装包)
Nov 28 Python
python代码实现扫码关注公众号登录的实战
Nov 01 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
一个用于MySQL的PHP XML类
2006/10/09 PHP
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
php使用cookie保存用户登录的用户名实例
2015/01/26 PHP
一些mootools的学习资源
2010/02/07 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
element-ui 限制日期选择的方法(datepicker)
2018/05/16 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
2019/06/13 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
详解Python编程中time模块的使用
2015/11/20 Python
Django 前后台的数据传递的方法
2017/08/08 Python
python基础练习之几个简单的游戏
2017/11/10 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
在python下使用tensorflow判断是否存在文件夹的实例
2019/06/10 Python
Python如何筛选序列中的元素的方法实现
2019/07/15 Python
Python使用type关键字创建类步骤详解
2019/07/23 Python
python配置文件写入过程详解
2019/10/19 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Python Charles抓包配置实现流程图解
2020/09/29 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
pytorch中index_select()的用法详解
2021/01/06 Python
在网络中有两台主机A和B,并通过路由器和其他交换设备连接起来,已经确认物理连接正确无误,怎么来测试这两台机器是否连通?如果不通,怎么来判断故障点?怎么排
2014/01/13 面试题
描述JSP和Servlet的区别、共同点、各自应用的范围
2012/10/02 面试题
做一个有道德的人活动实施方案
2014/08/23 职场文书
2014年组织部工作总结
2014/11/14 职场文书
2014年工人工作总结
2014/11/25 职场文书
2014年企业员工工作总结
2014/12/09 职场文书
搬迁通知
2015/04/20 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python