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的多重继承的理解
Aug 06 Python
Python网络爬虫神器PyQuery的基本使用教程
Feb 03 Python
Python3匿名函数用法示例
Jul 25 Python
python爬取淘宝商品销量信息
Nov 16 Python
django-filter和普通查询的例子
Aug 12 Python
安装PyInstaller失败问题解决
Dec 14 Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 Python
Python日志:自定义输出字段 json格式输出方式
Apr 27 Python
Django URL参数Template反向解析
Nov 24 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
python中redis包操作数据库的教程
Apr 19 Python
python中Pyqt5使用Qlabel标签播放视频
Apr 22 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 远程关机操作的代码
2008/12/05 PHP
PHP中遇到BOM、编码导致json_decode函数无法解析问题
2014/07/02 PHP
Laravel利用gulp如何构建前端资源详解
2018/06/03 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
编写针对IE的JS代码两种编写方法
2013/01/30 Javascript
JQuery分别取得每行最后一列和最后一行的示例代码
2013/08/18 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
如何更好的编写js async函数
2018/05/13 Javascript
基于AngularJs select绑定数字类型的问题
2018/10/08 Javascript
利用Webpack实现小程序多项目管理的方法
2019/02/25 Javascript
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
python常规方法实现数组的全排列
2015/03/17 Python
Python温度转换实例分析
2018/01/17 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
python 实现矩阵按对角线打印
2019/11/29 Python
python 计算概率密度、累计分布、逆函数的例子
2020/02/25 Python
西班牙英格列斯百货官网:El Corte Inglés
2016/09/25 全球购物
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
Hoover胡佛官网:美国吸尘器和洗地机品牌
2019/01/09 全球购物
ABOUT YOU匈牙利:500个最受欢迎的时尚品牌
2019/07/19 全球购物
大学生自荐信
2013/12/11 职场文书
《社戏》教学反思
2014/04/15 职场文书
商家认证委托书格式
2014/10/16 职场文书
诚信承诺书
2015/01/19 职场文书
小学三八妇女节活动总结
2015/02/06 职场文书
家庭暴力离婚起诉书
2015/05/18 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
Golang 并发编程 SingleFlight模式
2022/04/26 Golang
Python中np.random.randint()参数详解及用法实例
2022/09/23 Python