我们登录一个网页或者软件的时候,都要输入账号才能进入界面,随后就可以看其中的内容了。Cookie就类似于担任一个审查员的身份。对想要访问人的身份进行大大小小的审核,合格的才能放任通行,之后我们就可以愉快的去获取自己想要的网页内容啦~听起来是不是非常厉害的作用?本篇小编就来教大家Cookie的用法,一起看看吧。

一、获取 Cookie 保存到变量

首先,我们先利用 CookieJar 对象实现获取cookie的功能,存储到变量中,先来感受一下import urllib2

import cookielib

#声明一个CookieJar对象实例来保存cookie

cookie = cookielib.CookieJar()

#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器

handler=urllib2.HTTPCookieProcessor(cookie)

#通过handler来构建opener

opener = urllib2.build_opener(handler)

#此处的open方法同urllib2的urlopen方法,也可以传入request

response = opener.open('http://www.baidu.com')

for item in cookie:

print 'Name = '+item.name

print 'Value = '+item.value

我们使用以上方法将cookie保存到变量中,然后打印出了cookie中的值,运行结果如下Name = BAIDUID

Value = B07B663B645729F11F659C02AAE65B4C:FG=1

Name = BAIDUPSID

Value = B07B663B645729F11F659C02AAE65B4C

Name = H_PS_PSSID

Value = 12527_11076_1438_10633

Name = BDSVRTM

Value = 0

Name = BD_HOME

Value = 0

二、保存 Cookie 到文件

在上面的方法中,我们将 cookie 保存到了cookie这个变量中,如果我们想将cookie保存到文件中该怎么做呢?这时,我们就要用到FileCookieJar这个对象了,在这里我们使用它的子类MozillaCookieJar来实现Cookie的保存import cookielib

import urllib2

#设置保存cookie的文件,同级目录下的cookie.txt

filename = 'cookie.txt'

#声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件

cookie = cookielib.MozillaCookieJar(filename)

#利用urllib2库的HTTPCookieProcessor对象来创建cookie处理器

handler = urllib2.HTTPCookieProcessor(cookie)

#通过handler来构建opener

opener = urllib2.build_opener(handler)

#创建一个请求,原理同urllib2的urlopen

response = opener.open("http://www.baidu.com")

#保存cookie到文件

cookie.save(ignore_discard=True, ignore_expires=True)

三、从文件中获取 Cookie 并访问

那么我们已经做到把 Cookie 保存到文件中了,如果以后想使用,可以利用下面的方法来读取cookie并访问网站,感受一下import cookielib

import urllib2

#创建MozillaCookieJar实例对象

cookie = cookielib.MozillaCookieJar()

#从文件中读取cookie内容到变量

cookie.load('cookie.txt', ignore_discard=True, ignore_expires=True)

#创建请求的request

req = urllib2.Request("http://www.baidu.com")

#利用urllib2的build_opener方法创建一个opener

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

response = opener.open(req)

print response.read()

拓展:

cookielib 模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。Cookielib模块非常强大,我们可以利用本模块的CookieJar类的对象来捕获cookie并在后续连接请求时重新发送,比如可以实现模拟登录功能。该模块主要的对象有CookieJar、FileCookieJar、MozillaCookieJar、LWPCookieJar。 它们的关系:CookieJar—— 派生 ——>FileCookieJar—— 派生 ——->MozillaCookieJar和LWPCookieJar

以上就是python爬虫Cookie的使用方法以及Cookielib的简介。之前我们有讲过urllib模块,不过跟cookielib息息相关的是urllib2模块,小伙伴们不要记混了哦~更多Python学习推荐:PyThon学习网教学中心。

python中cookies怎么用_Cookie在python爬虫中怎么用?Cookielib又是什么?相关推荐

  1. python 中cookie_使用Python分析Cookies

    前言 本文的灵感来自于: 正文 本文已豆瓣电影的Cookies为例, 展示了从Cookies的获取, 解析的过程. 我们在浏览器中看到的Cookies大概是这样的: Cookie:bid=hZdgjL ...

  2. python中的字典推导式_17.python 字典推导式(经典代码)

    在昨天的文章中,我们介绍了关于** python列表推导式** 的使用,字典推导式使用方法其实也类似,也是通过循环和条件判断表达式配合使用,不同的是字典推导式返回值是一个字典,所以整个表达式需要写在{ ...

  3. Python爬虫中最重要、最常见、一定要熟练掌握的库

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 开始正文 Requests库是Python爬虫中最最最最最最重要与常见的库,一定要熟练掌握它. 下 ...

  4. 软件测试面试中都会问到哪些关于Python的问题?

    本文转载自测试人社区(ceshiren.com),原文链接:https://ceshiren.com/tag/精华帖 语言特性 谈谈对Python和其他语言的区别 答:Python是一门语法简洁优美, ...

  5. Python的cookies与session

    一. 渊源 当我们浏览一个网页,比如逛淘宝,我们在上面进行了登录,然后看上了心仪的东西并加入了购物车.临时有事,把电脑关掉了,第二天再重新打开这个界面的时候,我们发现并没有进行登录操作,就已经登陆上去 ...

  6. python爬虫股票指数变化_python爬虫中抓取指数的实例讲解

    有一些数据我们是没法直观的查看的,需要通过抓取去获得.听到指数这个词,有的小伙伴们觉得很复杂,似乎只在股票的时候才听说的,比如一些数据的涨跌分析都是比较棘手的问题.不过指数对于我们的数据分析还是很有帮 ...

  7. python中tensor与variable_NLP实战篇之tf2中tensor、variable、gradient、ops

    本文是基于tensorflow2.2.0版本,介绍了tf中变量.张量的概念,tf中梯度的计算方式和tensor相关的操作. 实战系列篇章中主要会分享,解决实际问题时的过程.遇到的问题或者使用的工具等等 ...

  8. python使用函数的目的_在Python 3.x中经常看到定义函数有一个单独的 * 参数?定义这样参数的目的是?怎样对其取值呢?...

    参数在python中总是通过赋值进行传递的.在默认情况下,参数是通过其位置进行匹配的,从左到右,而且必须精确的传递和函数头部参数名一样多的参数. 这种默认的传递方式很简单 def f(a,b,c): ...

  9. python的继承用法_【后端开发】python中继承有什么用法?python继承的用法详解

    本篇文章给大家带来的内容是关于python中继承有什么用法?python继承的用法详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 面向对象三大特征 1.封装:根据职责将属性和方法 ...

最新文章

  1. 基于java+jdbc+servlet+jsp实现图书商城
  2. 3.软件开发的本质和基本手段
  3. python调用R语言,关联规则可视化
  4. P4022-[CTSC2012]熟悉的文章【广义SAM,dp,单调队列】
  5. 32查运行内存的map文件_Spark Shuffle调优之调节map端内存缓冲与reduce端内存占比
  6. 瑞丽,边陲的旖旎风情
  7. latex中文模板_都8012年了还不用LaTex编辑论文就out了!!
  8. 基于 PostgreSQL 的 EMQ X Auth ACL
  9. Grad-CAM在语义分割中的pytorch实现
  10. springboot 调用方法事物_springboot中使用@Transactional注解事物不生效的坑
  11. python匿名函数Lambda的两种用法
  12. win10自动修复重启,无法开机「完美解决」
  13. unturned服务器参数修改,《Unturned》3.X.X控制台指令教程
  14. 企业邮箱,孰优孰劣?
  15. iOS icon 尺寸
  16. ThinkPHP5数据库操作
  17. 2014年10月高等教育国际金融全国统一命题考试
  18. iOS Charles Proxy 教程
  19. STM32学习笔记——MDK新建项目
  20. QQ小程序模板消息填坑——40003、40035

热门文章

  1. 十二、安装redis3.2
  2. CSAPP:第八章 异常控制流1
  3. 第六次程序设计作业 计算器图型界面的设计
  4. asp.net关于如何准许api跨域访问
  5. Mybatis框架_part1
  6. 起止时间控制,显示格式控制
  7. C++11中新特性之:lambda 表达式
  8. 从0开始架构一个IOS程序—— 02 — 设置启动图标与启动页面
  9. sublime text3常用的一些快捷键
  10. x == (x = y) 不等于 (x = y) == x ?