当前位置: 首页 > news >正文

Python爬虫之cookielib笔记

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

关于Python cookie的保存,有三种形式。

1、保存在内存中

# -*- coding:utf-8 -*-
import urllib2
import cookielib

cookie = cookielib.CookieJar()
handler = urllib2.HTTPCookieProcessor(cookie)
opener = urllib2.build_opener(handler)
opener.open('http://www.baidu.com')

print cookie

2、cookie保存在文件中(与Mozilla cookies.txt文件兼容格式)

# -*- coding:utf-8 -*-
import cookielib
import urllib2
 
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到文件,gnore_discard的意思是即使cookies将被丢弃也将它保存下来,
#ignore_expires的意思是如果在该文件中 cookies已经存在,则覆盖原文件写入
cookie.save(ignore_discard=True, ignore_expires=True)

#read cookie from file
rcookie = cookielib.MozillaCookieJar()
print '******************before read******************'
print rcookie

print '******************after read******************'
rcookie.load('./cookie.txt')
print rcookie

3、cookie保存在文件中(与libwww-perl Set-Cookie3文件兼容格式)

import cookielib
import urllib2
 
#设置保存cookie的文件,同级目录下的cookie.txt
filename = './cookie.txt'
#声明一个LWPCookieJar对象实例来保存cookie,之后写入文件
cookie = cookielib.LWPCookieJar(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到文件,gnore_discard的意思是即使cookies将被丢弃也将它保存下来,
#ignore_expires的意思是如果在该文件中 cookies已经存在,则覆盖原文件写入
cookie.save(ignore_discard=True, ignore_expires=True)

#read cookie from file
rcookie = cookielib.LWPCookieJar()
print '******************before read******************'
print rcookie

print '******************after read******************'
rcookie.load('./cookie.txt')
print rcookie


转载于:https://my.oschina.net/v5871314/blog/614000

相关文章:

  • 云数据中心逐步兴起,我们应如何选择?
  • Linux下套接字具体解释(三)----几种套接字I/O模型
  • 冒泡排序和选择排序(Go语言实现)
  • 虚拟化环境中的DHCP Snooping部署注意点
  • 使用nvm来管理nodejs版本
  • SQL Server事务日志分析
  • 如何优化VMware Linux虚拟机的性能?
  • java面试第十二天
  • os.walk函数
  • 牛顿开方法的算法及其原理
  • Shiro源码分析 - ShiroFilterFactoryBean初始化
  • 【BZOJ 1015】[JSOI2008]星球大战starwar
  • web.xml关于spring的讲解
  • 【ASP.NET Identity系列教程(三)】Identity高级技术
  • rhel配置网络yum源
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 30秒的PHP代码片段(1)数组 - Array
  • egg(89)--egg之redis的发布和订阅
  • Facebook AccountKit 接入的坑点
  • Hibernate【inverse和cascade属性】知识要点
  • log4j2输出到kafka
  • python 装饰器(一)
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 产品三维模型在线预览
  • 聊聊directory traversal attack
  • 前端技术周刊 2019-02-11 Serverless
  • 入门级的git使用指北
  • 微服务核心架构梳理
  • 我这样减少了26.5M Java内存!
  • 小程序开发中的那些坑
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 《码出高效》学习笔记与书中错误记录
  • 湖北分布式智能数据采集方法有哪些?
  • "无招胜有招"nbsp;史上最全的互…
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (全注解开发)学习Spring-MVC的第三天
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • .“空心村”成因分析及解决对策122344
  • .axf 转化 .bin文件 的方法
  • .cn根服务器被攻击之后
  • .gitignore文件设置了忽略但不生效
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET WebClient 类下载部分文件会错误?可能是解压缩的锅
  • .NET成年了,然后呢?
  • .NET开发人员必知的八个网站
  • .net连接MySQL的方法
  • .sh 的运行
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • @DateTimeFormat 和 @JsonFormat 注解详解
  • @WebService和@WebMethod注解的用法
  • [04] Android逐帧动画(一)
  • [Angular] 笔记 9:list/detail 页面以及@Output
  • [BZOJ1053][HAOI2007]反素数ant
  • [c++] 什么是平凡类型,标准布局类型,POD类型,聚合体