虽然CookieJar模块能够做到给请求设置cookie,但是它的cookie是保存在内存里的,每次用都需要重新设置,

这就衍生了一个它的子类---FileCookieJar,它可以将cookie保存在文件中,然后直接使用就可了

示例

cookie的保存

from urllib import request,parse

from http import cookiejar

# 创建filecookiejar实例对象

# 它需要一个参数,既cookie保存的位置

filename = 'cookie.txt'

cookie = cookiejar.FileCookieJar(filename)

# 根据创建的cookie生成cookie的管理器

cookie_handle = request.HTTPCookieProcessor(cookie)

# 创建http请求管理器

http_handle = request.HTTPHandler()

# 创建https管理器

https_handle = request.HTTPSHandler()

# 创建求求管理器,将上面3个管理器作为参数属性

# 有了opener,就可以替代urlopen来获取请求了

opener = request.build_opener(cookie_handle,http_handle,https_handle)

def login():

'''

负责初次登录

需要传递用户名和密码,来获取登录的cookie凭证

'''

# 登录url,需要从登录form的action属性中获取

url = 'http://www.renren.com/PLogin.do'

# 登录所需要的数据,数据为字典形式,

# 此键值需要从form扁担中对应的input的name属性中获取

data = {

'email':'136808069@qq.com',

'password':'123456'

}

# 将数据解析成urlencode格式

data = parse.urlencode(data)

req = request.Request(url,data=data)

# 正常是用request.urlopen(),这里用opener.open()发起请求

response = opener.open(req)

# 保存cookie文件

cookie.save()

if __name__ == '__main__':

'''

执行login函数

'''

login()

cookie的调用

from urllib import request,parse

from http import cookiejar

# 创建cookiejar实例对象

cookie = cookiejar.FileCookieJar()

# 读取已经保存的cookie文件

# 读取之后,就无需登录,直接访问主页即可

cookie.load('cookie.txt')

# 根据创建的cookie生成cookie的管理器

cookie_handle = request.HTTPCookieProcessor(cookie)

# 创建http请求管理器

http_handle = request.HTTPHandler()

# 创建https管理器

https_handle = request.HTTPSHandler()

# 创建求求管理器,将上面3个管理器作为参数属性

# 有了opener,就可以替代urlopen来获取请求了

opener = request.build_opener(cookie_handle,http_handle,https_handle)

def getHomePage():

'''

获取登录后的页面

'''

# 此url是登录后的链接地址

url = 'http://www.renren.com/965187997/profile'

# 如果已经执行了上面的login函数,

# 那么此时的opener已经是包含了cookie信息的一个opener对象

res = opener.open(url)

html = res.read().decode()

with open('renren.html','w') as f:

f.write(html)

if __name__ == '__main__':

getHomePage()

cookiejar包_爬虫之FileCookieJar相关推荐

  1. cookiejar包_爬虫之cookiejar模块

    简介 有时候我们需要爬一些需要登录才能进入网页,这个时候就要用到cookie相关的一些模块来操作了 内置的http包里包含了cookie相关的一些模块,通过她们我们可以自动使用cookie Cooki ...

  2. cookiejar包_「cookiejar」http.cookiejar库之CookieJar - seo实验室

    cookiejar cookiejar和HTTPCookieProcessor 我们在使用爬虫的时候,经常会用到cookie进行模拟登陆和访问.在使用urllib库做爬虫,我们需要借助http.coo ...

  3. 黑*头条_第8章_爬虫系统搭建

    黑*头条_第8章_爬虫系统搭建 文章目录 黑*头条_第8章_爬虫系统搭建 目标 1爬虫是什么 2名词解释 2.1 Webmagic: 2.2 webmagic的总体架构: 2.3 webmagic的总 ...

  4. R_circlize包_和弦图(二)

    作者:李誉辉 四川大学在读研究生 往期精彩: R_插值_拟合_回归_样条 接上一篇:R_circlize包_和弦图(一) link弦可见 在需要强调某些relation时,需要高亮对应的弦,一般有4种 ...

  5. cookiejar包_net/http/cookiejar

    import "net/http/cookiejar" 概述 索引 示例 概述 Cookiejar包实现了符合内存RFC 6265的http.CookieJar. 索引 type ...

  6. 离线安装python包_补充

    离线安装python包_补充 一.利用好pip,找到所有依赖库 1.要安装 paramiko,先 pip show 一下 paramiko 2.继续 pip show 其依赖库 3.继续 pip sh ...

  7. python爬虫抓图_Python系列之五_爬虫抓图

    Python系列之五_爬虫抓图 前面我们粗略地学习了Python语言的语法,一直学语法也挺无聊的,现在让我们让做一些有趣的事情. 例如你在百度贴吧里看到一篇文章,里面有很多好看的图片,但是一张张另存比 ...

  8. python 安卓模拟器 抓包_python + 爬虫 + fiddler + 夜神模拟器 爬取app(1)

    抓包 抓包是爬虫里面经常用到的一个词,完整的应该叫做抓取数据请求响应包 ,而Fiddler这款工具就是干这个的 普通https抓包设置 打开Fiddler ------> Options .然后 ...

  9. 打蚊子表情包_打蚊子表情包 - 打蚊子微信表情包 - 打蚊子QQ表情包 - 发表情 fabiaoqing.com...

    拍打蚊子GIF - 蚊子表情包_蚊子表情 夏天来了,打蚊子_蚊子_夏天表情 为什么蚊子只爱我 - 蚊子表情包_蚊子表情 采访蚊子 请问你为什么要咬我 - 蚊子表情包_蚊子表情 蚊子飞在屎上 - 打屎打 ...

最新文章

  1. Android Studio添加代码头注释使用
  2. javascript的typeof返回哪些数据类型
  3. 数据集中存在错误标注怎么办? 置信学习帮你解决
  4. 几种常用编程语言的编程思想和方法 转
  5. 在日期上加上相应天数,并在GridView上显示
  6. 初等数论--二次剩余与二次同余方程--既约剩余系中二次剩余的个数
  7. md文件生成Java代码_Beetlsql自定义生成entity,mapper,md代码
  8. oracle 练习 50_萨克斯每天需要练习内容
  9. 网管日志-06.07.24
  10. dockerfile如何运行镜像内的脚本_第七章 Dockerfile文件解析(一)
  11. PAT乙级(1005 继续(3n+1)猜想)
  12. php中 $_cfg,php 中 get_cfg_var() 与 ini_get() 的异同
  13. android 快速启动 hibernate,什么是快速启动以及如何在Windows中启用或禁用它 | MOS86...
  14. YUV420 总结 (YU12、YV12、NV12 和 NV21)
  15. 中维高清监控录像被覆盖故障排除
  16. ios kb转m_ios压缩到指定的 KB
  17. getvod.php_网站漏洞修复之苹果cms电影系统
  18. 从业多年,谈谈差分输入电路和共模信号,差模信号关系的理解
  19. php 跳转邮箱,JS点击跳转登陆邮箱功能简单的实现方法
  20. ChatGPT使用和无法登录,拒绝访问的问题汇总

热门文章

  1. zabbix专题:第七章 添加图像Graphs,添加聚合图形Screens
  2. [界面开发新秀]免费的AYUI,开发360领航版系列教程[2/40]
  3. JPA通用Dao类设计
  4. IOCP线程池的开发-(1)
  5. 高性能WEB开发(11) - flush让页面分块,逐步呈现
  6. 【君义精讲】多种方法求斐波那契数列
  7. 信息学奥赛一本通 2025:【例4.11】体操队
  8. 幸运数字(洛谷-P3292)
  9. 重排列(51Nod-2513)
  10. 信息学奥赛C++语言: 魔方