热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python44:cookielib的使用

2019独角兽企业重金招聘Python工程师标准本篇参考自伯乐在线:http:python.jobbole.com81344前面讲解了怎么使用浏览器的工具找到c

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

本篇参考自 伯乐在线 :http://python.jobbole.com/81344/

前面讲解了怎么使用浏览器的工具找到COOKIEs,以及怎么直接使用COOKIEs登陆网站等等,我们这一小节来讲解一下COOKIEs的其他操作

python 中对于COOKIEs的操作使用的是COOKIElib 这个库函数,或者说,模块

查看这个模块的详细信息,还是使用 help

import COOKIElib
help (COOKIElib)

我们可以看到输出如下

105745_VgLU_2429887.png

还可以进入图中显示的网址查看:https://docs.python.org/2/library/COOKIElib.html

这里面有很多的东西我们不必深究,我觉得我们现在只要知道三件事情就可以了

  1. 如何获取 COOKIEs

  2. 如何将 COOKIEs 保存到文件以便以后使用

  3. 如何从文件里面取出COOKIEs 

要完成这三件事情只需要这么模块里面的几个类:COOKIEJar,FileCOOKIEJar,MozillaCOOKIEJar,LWPCOOKIEJar

它们之间的关系是这样的:COOKIEJar —-派生—->FileCOOKIEJar —-派生—–>MozillaCOOKIEJar和LWPCOOKIEJar

  1.  COOKIEJar :获取COOKIEs并保存到变量中

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.nameprint 'Value = '+item.value

   2. 将COOKIEs保存到文件中

        FileCOOKIEJar(filename)

        创建FileCOOKIEJar实例,检索COOKIE信息并将信息存储到文件中,filename是文件名

        MozillaCOOKIEJar(filename)

        创建与Mozilla COOKIEs.txt文件兼容的FileCOOKIEJar实例

        LWPCOOKIEJar(filename)

        创建与libwww-perl Set-COOKIE3文件兼容的FileCOOKIEJar实例

        至于Mozilla和libwww是什么,这里给了一个链接:http://blog.csdn.net/heiyeshuwu/article/details/1691904

        简单的说就是两种不同的网页存取API

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)

关于最后save方法的两个参数在此说明一下:
官方解释如下:

 ignore_discard: save even COOKIEs set to be discarded.ignore_expires: save even COOKIEs that have expiredThe file is overwritten if it already exists

由此可见,ignore_discard的意思是即使COOKIEs将被丢弃也将它保存下来,ignore_expires的意思是如果在该文件中 COOKIEs已经存在,则覆盖原文件写入,在这里,我们将这两个全部设置为True  

 3. 从文件中读取COOKIEs

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()



转:https://my.oschina.net/u/2429887/blog/540152



推荐阅读
  • 在前一篇文章中,我们介绍了如何使用Requests库发送GET请求。本文将深入探讨如何通过Requests库发送POST请求,包括参数格式、请求封装等关键技巧,并通过“历史上的今天”API实例进行详细说明。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 通过优化动态网络Cookies的全网互通机制,实现了用户在任意子站点的登录和注销操作均能同步至整个网络。具体实现涉及对三个关键文件的修改:首先,在`incDv_ClsMain.asp`中定位并调整`Response.Cookies`的相关设置;其次,更新`global.asa`以确保会话状态的一致性;最后,修改`login.asp`以支持跨域认证。这一改进不仅提升了用户体验,还增强了系统的安全性和可靠性。 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • Tornado框架中模块与静态文件的应用
    本文详细介绍了Tornado框架中模块和静态文件的使用方法。首先明确模块与模板的区别,然后通过具体的代码示例展示如何在HTML文档中使用模块,并配置模块的路由。最后,提供了模块类中参数获取的示例。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 在进行前端JavaScript国际化(i18n)的过程中,为了从cookie中获取语言信息并动态加载相应资源,我决定将语言检测逻辑和i18n初始化代码直接嵌入到index页面中,使用了Velocity模板引擎的语法。这种方法不仅简化了代码结构,还提高了语言切换的灵活性和响应速度。 ... [详细]
  • HTML5 Web存储技术是许多开发者青睐本地应用程序的重要原因之一,因为它能够实现在客户端本地存储数据。HTML5通过引入Web Storage API,使得Web应用程序能够在浏览器中高效地存储数据,从而提升了应用的性能和用户体验。相较于传统的Cookie机制,Web Storage不仅提供了更大的存储容量,还简化了数据管理和访问的方式。本文将从基础概念、关键技术到实际应用,全面解析HTML5 Web存储技术,帮助读者深入了解其工作原理和应用场景。 ... [详细]
  • Cookie是一种小型数据文件,由Web服务器生成并存储在用户的浏览器中。当用户再次访问同一服务器时,这些数据可以被重新读取,为用户提供个性化的体验。Cookie在软件测试中具有重要作用,能够帮助测试人员验证会话管理、用户偏好设置等功能的正确性和安全性。通过深入解析Cookie的工作原理及其在不同场景下的应用,本文旨在为软件测试人员提供全面的技术指导。 ... [详细]
  • Spring 中获取 Request 的多种方式及其线程安全性的深入解析
    本文深入探讨了在Spring MVC框架下获取HTTP请求对象的多种方法,详细分析了每种方法的实现原理及其线程安全性,为开发者提供了全面的技术参考。 ... [详细]
author-avatar
mobiledu2502911857
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有