Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网)

  • 上一篇介绍了利用CookieJar访问人人网,本篇将使用filecookiejar将cookie以文件形式保存
  • 自动使用cookie登录,使用步骤:
    • 1.打开登录页面后,通过用户名密码登录
    • 2.自动提取反馈回来的cookie
    • 3.利用提取的cookie登录个人信息页面
    • 创建cookiejar实例
    • 生成cookie的管理器
    • 创建http请求管理器
    • 创建https请求的管理器
    • 创建请求管理器
    • 通过输入用户名和密码,获取cookie
  • 代码:
# 创建cookiejar的实例
cookie = cookiejar.CookieJar()
# 常见cookie的管理器
cookie_handler = request.HTTPCookieProcessor(cookie)
# 创建http请求的管理器
http_handler = request.HTTPHandler() # 生成https管理器
https_handler = request.HTTPSHandler() # 创建请求管理器
opener = request.build_opener(http_handler,https_handler,cookie_handler)

创建handle后,使用opener打开,打开后相应的业务由相应的handle处理

cookie作为一个变量打印出来

# 使用cookiejar
# cookie作为一个变量打印出来
from urllib import request,parse
from http import cookiejar # 创建cookiejar的实例
cookie = cookiejar.CookieJar()
# 常见cookie的管理器
cookie_handler = request.HTTPCookieProcessor(cookie)
# 创建http请求的管理器
http_handler = request.HTTPHandler() # 生成https管理器
https_handler = request.HTTPSHandler() # 创建请求管理器
opener = request.build_opener(http_handler,https_handler,cookie_handler) def login():
# 负责首次登录,输入用户名和密码,用来获取cookie
url = 'http://www.renren.com/PLogin.do' id = input('请输入用户名:')
pw = input('请输入密码:') data = {
# 参数使用正确的用户名密码
"email": id,
"password": pw
}
# 把数据进行编码
data = parse.urlencode(data)
# 创建一个请求对象
req = request.Request(url,data=data.encode('utf-8'))
# 使用opener发起请求
rsp = opener.open(req) # 以上代码就可以进一步获取cookie了,cookie在哪呢?cookie在opener里
def getHomePage():
# 地址是用在浏览器登录后的个人信息页地址
url = "http://www.renren.com/967487029/profile" # 如果已经执行login函数,则opener自动已经包含cookie
rsp = opener.open(url)
html = rsp.read().decode() with open("rsp1.html", "w", encoding="utf-8")as f:
# 将爬取的页面
print(html)
f.write(html) if __name__ == '__main__':
login()
# 执行完login之后,会得到授权之后的cookie,下一步打印出来
print(cookie)
for item in cookie:
print(type(item))
print(item)
for i in dir(item):
print(i)

我们使用print(i)打印出来了cookie的所有属性



下面介绍常用的属性

cookie的属性

  • name:名称
  • value:值
  • domain:可以访问此cookie的域名
  • path:可以访问此cookie的页面路径
  • expires:过期时间
  • size:大小
  • http:字段
cookie的值虽然可以自己修改,但是修改后就会导致和服务器端数据不一致,而使cookie无效,最终登录失败

cookie的保存-FileCookieJar


# 使用filecookiejar
from urllib import request,parse
from http import cookiejar # 创建cookiejar的实例
filename = "py15renrenCookie.txt"
cookie = cookiejar.MozillaCookieJar(filename)
# 常见cookie的管理器
cookie_handler = request.HTTPCookieProcessor(cookie)
# 创建http请求的管理器
http_handler = request.HTTPHandler() # 生成https管理器
https_handler = request.HTTPSHandler() # 创建请求管理器
opener = request.build_opener(http_handler,https_handler,cookie_handler) def login():
# 负责首次登录,输入用户名和密码,用来获取cookie
url = 'http://www.renren.com/PLogin.do' id = input('请输入用户名:')
pw = input('请输入密码:') data = {
# 参数使用正确的用户名密码
"email": id,
"password": pw
}
# 把数据进行编码
data = parse.urlencode(data)
# 创建一个请求对象
req = request.Request(url,data=data.encode('utf-8'))
# 使用opener发起请求
rsp = opener.open(req) '''
保存cookie到文件
两个参数:
ignore_discard:表示及时cookie将要被丢弃,是否保存下来
ignore_expires:表示如果该文件中cookie已经过期,是否保存下来
'''
cookie.save(ignore_discard=True, ignore_expires=True) if __name__ == '__main__': login()

运行结果



本篇使用filecookiejar将cookie以文件形式保存

更多文章链接:Python 爬虫随笔


- 本笔记不允许任何个人和组织转载

Python爬虫教程-14-爬虫使用filecookiejar保存cookie文件(人人网)的更多相关文章

  1. Python爬虫教程-30-Scrapy 爬虫框架介绍

    从本篇开始学习 Scrapy 爬虫框架 Python爬虫教程-30-Scrapy 爬虫框架介绍 框架:框架就是对于相同的相似的部分,代码做到不出错,而我们就可以将注意力放到我们自己的部分了 常见爬虫框 ...

  2. Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍

    本篇介绍项目开发的过程中,对 Setting 文件的配置和使用 Python爬虫教程-32-Scrapy 爬虫框架项目 Settings.py 介绍 settings.py 文件的使用 想要详细查看 ...

  3. Python 基础教程 —— 网络爬虫入门篇

    前言 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言,它由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年.自面世以后,Pytho ...

  4. Python 简明教程 --- 14,Python 数据结构进阶

    微信公众号:码农充电站pro 个人主页:https://codeshellme.github.io 如果你发现特殊情况太多,那很可能是用错算法了. -- Carig Zerouni 目录 前几节我们介 ...

  5. Python爬虫教程-05-python爬虫实现百度翻译

    使用python爬虫实现百度翻译功能 python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取 ...

  6. 大爽Python入门教程 1-4 习题

    大爽Python入门公开课教案 点击查看教程总目录 1 [思考]方向变换 小明同学站在平原上,面朝北方,向左转51次之后(每次只转90度), 小明面朝哪里?小明转过了多少圈? (360度为一圈,圈数向 ...

  7. Python爬虫教程-01-爬虫介绍

    Spider-01-爬虫介绍 Python 爬虫的知识量不是特别大,但是需要不停和网页打交道,每个网页情况都有所差异,所以对应变能力有些要求 爬虫准备工作 参考资料 精通Python爬虫框架Scrap ...

  8. Python爬虫教程-00-写在前面

    鉴于好多人想学Python爬虫,缺没有简单易学的教程,我将在CSDN和大家分享Python爬虫的学习笔记,不定期更新 基础要求 Python 基础知识 Python 的基础知识,大家可以去菜鸟教程进行 ...

  9. Python爬虫教程-33-scrapy shell 的使用

    本篇详细介绍 scrapy shell 的使用,也介绍了使用 xpath 进行精确查找 Python爬虫教程-33-scrapy shell 的使用 scrapy shell 的使用 条件:我们需要先 ...

随机推荐

  1. vue,下级页面刷新导致路由跳转带过来的数据消失的解决方法

    if(typeof(this.$route.query.result)=='string'){ //刷新时走这 }else{ //正常路由跳转过来后就把数据塞到 localStorage let ob ...

  2. [转] AKKA简介

    [From] https://blog.csdn.net/linuxarmsummary/article/details/79399602 Akka in JAVA(一) AKKA简介 什么是AKKA ...

  3. 【Python】端口扫描脚本

    0x00   使用模块简介 1.optparse模块 选项分析器,可用来生成脚本使用说明文档,基本使用如下: import optparse #程序使用说明 usage="%prog -H ...

  4. Django get_object ,get_queryset方法

    Django提供了很多通用的基于类的视图(Class Based View),可以帮我们简化执行以下操作的代码.这些基于类的视图还提供了get_queryset, get_context_data和g ...

  5. Shiro入门资源整理

    学习一个框架,查阅权威有效的资料能够事半功倍,本文收集笔者学习此框架中帮助很大的文档,希望对大家有所帮助. 对于文档类的,强烈建议看官方文档,而不是百度出来的经过网友加工或者搬运过来的资料!! shi ...

  6. Linux串口驱动程序设计

    1. 在Linux系统中,终端是一类字符型设备,它包括多种类型,通常使用tty来简称各种类型的终端设备. (1)串口终端(/dev/ttyS*):串口终端是使用计算机串口连接的终端设备.Linux把每 ...

  7. 使用vmtools来设置windows和linux的共享文件夹

    目的:通过vmtools来实现windows和linux的共享文件夹 步骤: 1.前提条件是vmtools已经安装 2.在windows任意磁盘新建一个共享文件夹 3.进入虚拟机->设置-> ...

  8. Three.js 前言

    -----------------------------------本文非技术文章,着急开发的小伙伴请绕道----------------------------------------- 最近公司 ...

  9. html5在手机熄屏后倒计时会出现延迟情况

    今天开发了一个手机端的倒计时,然后同事说出现了Bug,怎么回事呢?Bug很简单,就是在手机返回主界面或者熄屏后倒计时会暂停在熄屏前的时间(注意时间是页面加载时获取的服务器的时间),问题很简单,知道问题 ...

  10. CentOS系统服务配置资源限制ulimit

    使用Systemd管理服务的,均可使用此方法. 在 /usr/lib/systemd/system/xxx.service中,添加如下内容即可: [Service] # Other directive ...