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. PHP斐波那契数列有点不明白有哪位大佬能给讲讲思想以及实现过程

    function Fibonacci($n){         if($n <= 0) {             return 0;         }elseif($n == 1) {    ...

  2. iOS开发之zip文件解压

    今天给大家分享zip解压到指定目录 首先需要下载ZipArchive文件 下载地址:https://pan.baidu.com/s/1S6qYicoVr3M3hI0M1EW2Bw 将下载的文件导入工程 ...

  3. loading js备份

    loadingManageEdit.jsp $(function(){ //组织 var lodingDeparts =[<c:forEach items="${lodingDepar ...

  4. javascript封装函数入门

    封装函数的入门 一.使用函数有两步: 1.定义函数,又叫声明函数, 封装函数. 定义函数的三个要素:功能,参数,返回值. function 函数名(形参){ 函数代码 return 结果} //2.调 ...

  5. MySQL数据库快速造大量数据

    这段时间做性能测试,发现数据都是分库写进数据库了,并且要构造大量数据,大概4000万的数据量,用普通的方法,写个MySQL函数,之前测试过,大概200万数据也要跑一个多小时,太慢了. 后面研究发现有个 ...

  6. C# .net 填充无效,无法被移除 微信小程序解密失败的解决办法

    微信小程序获取用户信息诸如unionId的时候需要解密,如果遇到偶然的解密失败(填充无效,无法被移除),原因很有可能是session_key错误, 也是就你用作解密的session_key并不是微信用 ...

  7. leetcode python两数之和返回索引

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用. 示例: 给定 nums = [2, 7, 11, 15], target ...

  8. Spark SQL UDAF示例

    UDAF:用户自定义聚合函数 Scala 2.10.7,spark 2.0.0 package UDF_UDAF import java.util import org.apache.spark.Sp ...

  9. 原生JS插件(超详细)

    作为一个前端er,如果不会写一个小插件,都不好意思说自己是混前端界的.写还不能依赖jquery之类的工具库,否则装得不够高端.那么,如何才能装起来让自己看起来逼格更高呢?当然是利用js纯原生的写法啦. ...

  10. 深入解读Service Mesh背后的技术细节

    在Kubernetes称为容器编排的标准之后,Service Mesh开始火了起来,但是很多文章讲概念的多,讲技术细节的少,所以专门写一篇文章,来解析Service Mesh背后的技术细节. 一.Se ...