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 相关文章推荐
在Django框架中编写Context处理器的方法
Jul 20 Python
python版本的读写锁操作方法
Apr 25 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
在Python中过滤Windows文件名中的非法字符方法
Jun 10 Python
Python 串口读写的实现方法
Jun 12 Python
使用python socket分发大文件的实现方法
Jul 08 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
python脚本之一键移动自定格式文件方法实例
Sep 02 Python
Python栈的实现方法示例【列表、单链表】
Feb 22 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
Python中OpenCV实现简单车牌字符切割
Jun 11 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
收音机发烧友应当熟知的100条知识
2021/03/02 无线电
php adodb介绍
2009/03/19 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
php生成图片验证码
2015/06/09 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
[推荐]javascript 面向对象技术基础教程
2009/03/03 Javascript
JQuery 常用操作代码
2010/03/14 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
P3P Header解决Cookie跨域的问题
2013/03/12 Javascript
js切换光标示例代码
2013/10/10 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
js HTML5上传示例代码完整版
2016/10/10 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
Bootstrap输入框组件简单实现代码
2017/03/06 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
Node.js 多进程处理CPU密集任务的实现
2019/05/26 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
js 获取扫码枪输入数据的方法
2020/06/10 Javascript
django自定义Field实现一个字段存储以逗号分隔的字符串
2014/04/27 Python
python批量修改文件名的实现代码
2014/09/01 Python
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
python使用thrift教程的方法示例
2019/03/21 Python
python实现扫描局域网指定网段ip的方法
2019/04/16 Python
植物选择:Botanic Choice
2017/02/15 全球购物
KENZO官网:高田贤三在法国创立的品牌
2019/05/16 全球购物
信息专业大学生自我评价分享
2014/01/17 职场文书
幼儿园大班家长评语
2014/04/17 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
mysql5.6主从搭建以及不同步问题详解
2021/12/04 MySQL
【DOTA2】当街暴打?PSG LGD vs VG - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA
如何Tomcat中使用ipv6地址
2022/05/06 Servers