cookielib是一个自动处理cookies的模块,如果我们在使用爬虫等技术的时候需要保存cookie,那么cookielib会让你事半功倍!他最常见的搭档模块就是python下的urllib和request。

核心类

1.Cookie该类实现了Netscape and RFC 2965 cookies定义的cookie标准,基本可以理解为某一条cookie数据。

部分代码如下,很多属性是不是很眼熟?

self.domain_initial_dot = domain_initial_dot

self.path = path

self.path_specified = path_specified

self.secure = secure

self.expires = expires

self.discard = discard

self.comment = comment

self.comment_url = comment_url

self.rfc2109 = rfc2109

2.CookiePolicy该类的主要功能是收发cookie,即确保正确的cookie发往对应的域名,反之一样。

3.DefaultCookiePolicy该类实现了CookiePolicy的接口。

4.CookieJarCookieJar是cookie的集合,可以包含有很多Cookie类,是我们的主要操作对象。里面有一系列的方法可以支持更加细致的操作!

5.FileCookieJar该类继承自CookieJar,CookieJar只是在内存中完成自己的生命周期,FileCookieJar的子类能够实现数据持久化,定义了save、load、revert三个接口。

6.MozillaCookieJar & LWPCookieJar两个实现类,继承关系如下:

实例:登录人人网在firefox下使用httpFox插件来查到人人网的登录时需要POST的地址是http://www.renren.com/ajaxLogin

而且查看到需要POST的DATA有email和password

python通过cookielib来处理cookie,以下是简单的代码

>>> import urllib

>>> import urllib2,cookielib

>>> login_page = "http://www.renren.com/ajaxLogin"

>>> cj = cookielib.CookieJar()

>>> opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

>>> opener.add_handler = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]

>>> data = urllib.urlencode({"email":'username',"password":'password'})

>>> opener.open(login_page,data)

>

>>> if cj:

... for index,cookie in enumerate(cj):

... print index,':',cookie

...

0 :

1 :

2 :

3 :

4 :

5 :

6 :

7 :

8 :

9 :

10 :

11 :

>>>

可以和firebug或者httpFox中得到的cookie进行对比,值可能不一致,但key基本上是一致的,你每次登录应该都不一致

我也尝试过使用fidder模拟发送没有cookie的POST数据,但是没有得到想要的返回值

而加上cookie信息以后就可以正常的跳转到自己的主页了

好了,基本上了解了python中使用cookie来发送登录信息,现在我们来写一个小脚本来登录自己人人网。

#encoding=utf-8

import urllib2

import urllib

import cookielib

def renrenBrower(url,user,password):

login_page = "http://www.renren.com/ajaxLogin"

try:

cj = cookielib.CookieJar()

opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))

opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]

data = urllib.urlencode({"email":user,"password":password})

opener.open(login_page,data)

op=opener.open(url)

data= op.read()

return data

except Exception,e:

print str(e)

print renrenBrower("http://www.renren.com/home","用户名","密码")

这样就可以将自己首页的信息显示出来了,其实在登录完以后,还可以接着写脚本来获取自己想要的信息,如朋友的新鲜事等,这里就不作过多说明了~

python cookie使用_Python使用cookielib模块操作cookie的实例教程相关推荐

  1. python psycopg2使用_Python中用psycopg2模块操作PostgreSQL方法

    其实在Python中可以用来连接PostgreSQL的模块很多,这里比较推荐psycopg2.psycopg2安装起来非常的简单(pip install psycopg2),这里主要重点介绍下如何使用 ...

  2. Python中optionParser模块的使用方法实例教程

    Python中optionParser模块的使用方法实例教程 转载  2014-08-29   投稿:shichen2014    我要评论 这篇文章主要介绍了Python中optionParser模 ...

  3. python pymysql实例_Python使用pymysql模块操作mysql增删改查实例分析

    Python使用pymysql模块操作mysql增删改查实例分析 发布时间:2020-09-30 16:42:12 来源:脚本之家 阅读:92 本文实例讲述了Python使用pymysql模块操作My ...

  4. python cx_oracle模块详解_Python使用cx_Oracle模块操作Oracle数据库详解

    这篇文章主要介绍了Python使用cx_Oracle模块操作Oracle数据库,结a合实例形式较为详细的分析了cx_Oracle模块的下载.安装及针对Orcle数据库的连接.执行SQL语句.存储过程等 ...

  5. python怎么用excel-Python使用xlwt模块操作Excel的方法详解

    本文实例讲述了Python使用xlwt模块操作Excel的方法.分享给大家供大家参考,具体如下: 部分摘自官网文档. 该模块安装很简单 $ pip install xlwt 先来个简单的例子: #!/ ...

  6. c调用python第三方库_Python使用ctypes模块调用DLL函数之C语言数组与numpy数组传递...

    在Python语言中,可以使用ctypes模块调用其它如C++语言编写的动态链接库DLL文件中的函数,在提高软件运行效率的同时,也可以充分利用目前市面上各种第三方的DLL库函数,以扩充Python软件 ...

  7. python 主线程_Python threading多线程模块

    Python是支持使用多线程的,程序代码可以在一个进程空间中操作管理多个执行的线程,python模块下载时要记得,这个库叫做 threading. 一.threading模块简介 在Python多线程 ...

  8. python的取整和取余_python实现取余操作的简单实例

    python实现取余操作的方法: 可以利用求模运算符(%)来实现.求模运算符可以将两个数相除得到其余数.我们还可以使用divmod()函数来实现取余操作,具体方法如:[divmod(10,3)]. 在 ...

  9. python利用thinker制作多页面切换的桌面应用实例教程

    本篇文章主要讲解,python利用thinker制作多页面的桌面实例教程.可以在一个主界面中相互进行切换和设置相关的表单信息,布局等方法 代码片段的实际效果 视频演示: python使用thinker ...

最新文章

  1. Nat. Commun. | 识别药物靶点的贝叶斯机器学习方法
  2. Java 7并发编程实战手册
  3. 分区表导入导出[未完]
  4. UA OPTI570 量子力学 恒等算符在算符计算中的应用
  5. Python 办公自动化之一 Excel
  6. 分布式--ActiveMQ 消息中间件(一) https://www.jianshu.com/p/8b9bfe865e38
  7. AVA:Netflix的剧照个性化甄选平台
  8. SQL导出数据到EXCEL的问题
  9. ActiveReports 9实战教程(2): 准备数据源(设计时、运行时)
  10. JSK-119 求解a到100的和【入门】
  11. android强制结束进程_Android完全强制退出应用程序
  12. Region proposal学习笔记
  13. 2018美赛E题所有国家气候数据
  14. 编程求完全二叉树的叶子结点数
  15. Hearbeat + Nginx 安装配置
  16. 阿里java类注释模板_向IDE导入阿里编码规约格式化模板和注释模板
  17. 排列熵、模糊熵、近似熵、样本熵的原理及MATLAB实现之样本熵
  18. Golang编码规范
  19. 人机交互系统(4.1)——深度学习在人脸检测中的应用
  20. 实现win 10 电脑版微信双开

热门文章

  1. rome rss_RSS阅读器使用:ROME,Spring MVC,嵌入式Jetty
  2. VMWare vijava –“用户名或密码不正确”异常的奇怪情况
  3. Spring Data Solr教程:将自定义方法添加到单个存储库
  4. Spring Boot – spring.config.name –案例研究
  5. maven 父maven_Maven的春天
  6. java中集合判空_Java中的类型安全的空集合
  7. jsf 自定义属性_必填字段的自定义JSF验证器
  8. recaptcha_与reCAPTCHA的Spring集成
  9. 定制Hamcrest Matchers
  10. Tomcat的默认连接器