爬虫之FileCookieJar
简介
虽然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()
爬虫之FileCookieJar的更多相关文章
- Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网)
		Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网) 上一篇介绍了利用CookieJar访问人人网,本篇将使用filecookiejar将cookie以文件形式 ... 
- Python_爬虫2
		URLError异常处理 大家好,本节在这里主要说的是URLError还有HTTPError,以及对它们的一些处理. 1.URLError 首先解释下URLError可能产生的原因: 网络无连接,即本 ... 
- Python爬虫入门:Cookie的使用
		大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在 ... 
- python爬虫(六)_urllib2:handle处理器和自定义opener
		本文将介绍handler处理器和自定义opener,更多内容请参考:python学习指南 opener和handleer 我们之前一直使用的是urllib2.urlopen(url)这种形式来打开网页 ... 
- python 3.x 爬虫基础---Urllib详解
		python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 前言 爬虫也了解了一段时间了希望在半个月的时间内 ... 
- python爬虫 - Urllib库及cookie的使用
		http://blog.csdn.net/pipisorry/article/details/47905781 lz提示一点,python3中urllib包括了py2中的urllib+urllib2. ... 
- python爬虫入门(二)Opener和Requests
		Handler和Opener Handler处理器和自定义Opener opener是urllib2.OpenerDirector的实例,我们之前一直在使用urlopen,它是一个特殊的opener( ... 
- Python爬虫入门这一篇就够了
		何谓爬虫 所谓爬虫,就是按照一定的规则,自动的从网络中抓取信息的程序或者脚本.万维网就像一个巨大的蜘蛛网,我们的爬虫就是上面的一个蜘蛛,不断的去抓取我们需要的信息. 爬虫三要素 抓取 分析 存储 基础 ... 
- 001 爬虫的基本概念以及urllib的request和parse
		1.http的请求方式: get请求 优点:比较便捷 缺点:不安全.长度有限制post请求 优点:比较安全.数据整体没有限制.可以上传文件putdelete(删除一些信息) 发送网络请求(可以带一定的 ... 
随机推荐
- 基于 jQuery支持移动触摸设备的Lightbox插件
			Swipebox是一款支持桌面.移动触摸手机和平板电脑的jquery Lightbox插件.该lightbox插件支持手机的触摸手势,支持桌面电脑的键盘导航,并且支持视频的播放. 在线预览 源码下 ... 
- [kernel]字符设备驱动、平台设备驱动、设备驱动模型、sysfs几者之间的比较和关联
			转自:http://www.2cto.com/kf/201510/444943.html Linux驱动开发经验总结,绝对干货! 学习Linux设备驱动开发的过程中自然会遇到字符设备驱动.平台设备驱动 ... 
- 二分 + 模拟 - Carries
			Carries Problem's Link Mean: 给你n个数,让你计算这n个数两两组合相加的和进位的次数. analyse: 脑洞题. 首先要知道:对于两个数的第k位相加会进位的条件是:a%( ... 
- 概率dp - UVA 11021 Tribles
			Tribles Problem's Link: http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=33059 Mean: 有k个细 ... 
- js学习笔记22----BOM属性和方法
			BOM基本概念 : Browser Object Model 浏览器对象模型. BOM属性: window.navigator.userAgent : 浏览器信息 判断是否是某个浏览器,可以用 ind ... 
- C#调用系统API
			API简介 1) C#中的简单数据类型与API中的数据类型对应关系 2) 如何在调用API时传递复杂参数:封装类.结构和联合 3) 如何调用API 4) 如何确保成功调用API 
- HBase学习系列
			转自:http://www.aboutyun.com/thread-8391-1-1.html 问题导读: 1.hbase是什么? 2.hbase原理是什么? 3.hbase使用中会遇到什么问题? 4 ... 
- MyBatis-Spring 使用总结
			说明:Java-based Config. 不是通过 mybatis 的 SqlSessionFactoryBuilder 来创建 SqlSessionFactory ,而是通过 mybatis-sp ... 
- java.lang下面有一个接口:Comparable(可比较的)
			对于自定义对象,Sort不知道规则,所以无法比较.这种情况下一定要定义排序规则.方式有两种: java.lang下面有一个接口:Comparable(可比较的) 可以让自定义对象实现一个接口,这个接口 ... 
- JavaScript设计模式——观察者模式
			观察者模式,又称发布-订阅模式或消息机制,定义了一种依赖关系,解决了主题对象与观察者之间功能的耦合. 通过运用观察者模式,可以解决团队开发中的模块间通讯问题,这是模块间解耦的一种可行方案. 首先,我们 ... 
