GitHub代码练习地址:1.手动利用cookie访问网页:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac10_cookie1.py
           2.自动利用cookie访问人人主页:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac11_cookie2.py

cookie & session

由于http协议的无记忆性,人们为了弥补这个缺憾,所采用的一个补充协议
cookie是发放给用户(即http浏览器)的一段信息,session是保存在服务器上的对应的另一半信息,用来记录用户信息 cookie与session的存放位置不同
   session的存放位置
  存在服务器端
  一般情况,session是放在内存中或者数据库中
  没有cookie登录的情况:没使用cookie则反馈网页为未登录状态
   cookie不安全
session会保存在服务器上一定时间,会过期
单个cookie保存数据不超过4k, 很多浏览器限制一个站点最多保存20个
  
使用cookie登录
1.手动:
直接把cookie复制下来,然后手动放入请求头,代码见上1。   2.自动:
http模块包含一些关于cookie的模块,通过他们我们可以自动使用cookie
①.CookieJar
管理存储cookie,向传出的http请求添加cookie,
cookie存储在内存中,CookieJar实例回收后cookie将消失
②.FileCookieJar(filename, delayload=None, policy=None):
使用文件管理cookie
filename是保存cookie的文件
③.MozillaCookieJar(filename, delayload=None, policy=None):
创建与mocilla浏览器cookie.txt兼容的FileCookieJar实例
④.LwpCookieJar(filename, delayload=None, policy=None):
创建与libwww-perl标准兼容的Set-Cookie3格式的FileCookieJar实例
他们的关系是: CookieJar-->FileCookieJar-->MozillaCookieJar & LwpCookieJar 利用cookiejar访问人人,代码见上2。
自动使用cookie登录,大致流程是
①.打开登录页面后自动通过用户名密码登录
②.自动提取反馈回来的cookie
③.利用提取的cookie登录隐私页面
handler是Handler的实例,常用参看案例代码
用来处理复杂请求 生成 cookie的管理器
cookie_handler = request.HTTPCookieProcessor(cookie)
创建http请求管理器
http_handler = request.HTTPHandler()
生成https管理器
https_handler = request.HTTPSHandler() 创立handler后,使用opener打开,打开后相应的业务由相应的hanlder处理
cookie作为一个变量,打印出来,
cookie的属性
- name: 名称
- value: 值
- domain:可以访问此cookie的域名
- path: 可以访问此cookie的页面路径
- expires:过期时间
- size: 大小
- Http字段

Python爬虫7-Cookie & Session的更多相关文章

  1. 【python爬虫】cookie & session

    一.什么是cookie? cookie是指网站为了鉴别用户身份,进行会话跟踪而存储在客户端本地的数据. 二.什么是session? 本来的含义是指有始有终的一些列动作,而在web中,session对象 ...

  2. Python Flask,cookie,session ,设置、获取、删除

    使用Response类的set_cookie()方法可以设置cookie: Response.set_cookie( key, //键 value='', //值 max_age=None, //秒为 ...

  3. Python爬虫之Cookie和Session

    关于cookie和session估计很多程序员面试的时候都会被问到,这两个概念在写web以及爬虫中都会涉及,并且两者可能很多人直接回答也不好说的特别清楚,所以整理这样一篇文章,也帮助自己加深理解 什么 ...

  4. python爬虫之Cookie

    由于http协议是无状态协议(假如登录成功,当访问该网站的其他网页时,登录状态消失),此时,需要将会话信息保存起来,通过cookie或者session的方式 cookie 将所有的回话信息保存在客户端 ...

  5. python爬虫+使用cookie登录豆瓣

    2017-10-09 19:06:22 版权声明:本文为博主原创文章,未经博主允许不得转载. 前言: 先获得cookie,然后自动登录豆瓣和新浪微博 系统环境: 64位win10系统,同时装pytho ...

  6. python爬虫-使用cookie登录

    前言: 什么是cookie? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想 ...

  7. Python爬虫之cookie的获取、保存和使用【新手必学】

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:huhanghao Cookie,指某些网站为了辨别用户身份.进行ses ...

  8. python爬虫基础16-cookie在爬虫中的应用

    Cookie的Python爬虫应用 Cookie是什么 Cookie,有时也用其复数形式 Cookies,英文是饼干的意思.指某些网站为了辨别用户身份.进行 session 跟踪而储存在用户本地终端上 ...

  9. Python爬虫教程

    Python爬虫(1):基本原理 Python爬虫(2):Requests的基本用法 Python爬虫(3):Requests的高级用法 Python爬虫(4):Beautiful Soup的常用方法 ...

  10. python爬虫 - Urllib库及cookie的使用

    http://blog.csdn.net/pipisorry/article/details/47905781 lz提示一点,python3中urllib包括了py2中的urllib+urllib2. ...

随机推荐

  1. 2018-2019-2 20165206 网络攻防技术 Exp5 MSF基础应用

    - 2018-2019-2 20165206<网络攻防技术>Exp5 MSF基础应用 - 实验任务 1.1一个主动攻击实践,如ms08_067; (1分) 1.2 一个针对浏览器的攻击,如 ...

  2. Idea远程调试undertow

    1.修改jfinal.sh 添加远程调试配置,端口5555可自行设置 JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,suspend=n,s ...

  3. python全栈开发day113-DBUtils(pymysql数据连接池)、Request管理上下文分析

    1.DBUtils(pymysql数据连接池) import pymysql from DBUtils.PooledDB import PooledDB POOL = PooledDB( creato ...

  4. SQL反模式学习笔记2 乱穿马路

    程序员通常使用逗号分隔的列表来避免在多对多的关系中创建交叉表, 将这种设计方式定义为一种反模式,称为“乱穿马路”. 目标:  存储多属性值,即多对一 反模式:将多个值以格式化的逗号分隔存储在一个字段中 ...

  5. java编程(1)——servlet和Ajax异步请求的接口编程(没有调用数据库的数据)

    编程应用背景: 使用HttpServlet接口来编写一个动态登录的接口(需要在Tomcat容器发布) 登录的 LoginSample 类代码: package com.zhang.java; publ ...

  6. Linux-网络综合实验

    题目要求:财务部门有俩台机器acc-1和acc-2,it部门有俩台机器it-2和it-2,要求acc机器互通,it机器互通,财务部和it部机器通过路由器互通

  7. VS2015|Visual Studio Enterprise 2015简体中文版(企业版)

    Microsoft Visual Studio(简称VS)是美国微软公司的开发工具包系列产品.Visual Studio 2015 是一个丰富的集成开发环境,可用于创建出色的 Windows.Andr ...

  8. java自动化-实际使用junit的演示

    本文简单介绍一下我写的http接口后端框架 在经过之前多篇博客介绍之后,读者应掌握如下技能 1,自动运行一个或者多个junit框架编写的java代码 2,对数据驱动以及关键字驱动有一定的了解和认识,甚 ...

  9. go 可变参数

    go 在参数列表中使用 ... 表示可变参数,例如: import "fmt" func Minimum(first int, others ...int) int { min : ...

  10. C++ otlv4 连接 sql server 数据库小记

    otlv4介绍: http://otl.sourceforge.net/ 测试代码 // testotlv4.cpp : 定义控制台应用程序的入口点. // #include "stdafx ...