热门标签 | 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



推荐阅读
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 关键词:Golang, Cookie, 跟踪位置, net/http/cookiejar, package main, golang.org/x/net/publicsuffix, io/ioutil, log, net/http, net/http/cookiejar ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • Android实战——jsoup实现网络爬虫,糗事百科项目的起步
    本文介绍了Android实战中使用jsoup实现网络爬虫的方法,以糗事百科项目为例。对于初学者来说,数据源的缺乏是做项目的最大烦恼之一。本文讲述了如何使用网络爬虫获取数据,并以糗事百科作为练手项目。同时,提到了使用jsoup需要结合前端基础知识,以及如果学过JS的话可以更轻松地使用该框架。 ... [详细]
  • 本文介绍了Python对Excel文件的读取方法,包括模块的安装和使用。通过安装xlrd、xlwt、xlutils、pyExcelerator等模块,可以实现对Excel文件的读取和处理。具体的读取方法包括打开excel文件、抓取所有sheet的名称、定位到指定的表单等。本文提供了两种定位表单的方式,并给出了相应的代码示例。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Webmin远程命令执行漏洞复现及防护方法
    本文介绍了Webmin远程命令执行漏洞CVE-2019-15107的漏洞详情和复现方法,同时提供了防护方法。漏洞存在于Webmin的找回密码页面中,攻击者无需权限即可注入命令并执行任意系统命令。文章还提供了相关参考链接和搭建靶场的步骤。此外,还指出了参考链接中的数据包不准确的问题,并解释了漏洞触发的条件。最后,给出了防护方法以避免受到该漏洞的攻击。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了在多平台下进行条件编译的必要性,以及具体的实现方法。通过示例代码展示了如何使用条件编译来实现不同平台的功能。最后总结了只要接口相同,不同平台下的编译运行结果也会相同。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 单页面应用 VS 多页面应用的区别和适用场景
    本文主要介绍了单页面应用(SPA)和多页面应用(MPA)的区别和适用场景。单页面应用只有一个主页面,所有内容都包含在主页面中,页面切换快但需要做相关的调优;多页面应用有多个独立的页面,每个页面都要加载相关资源,页面切换慢但适用于对SEO要求较高的应用。文章还提到了两者在资源加载、过渡动画、路由模式和数据传递方面的差异。 ... [详细]
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社区 版权所有