爬虫过程中,cookie可以保留用户与服务器之间的交互信息,使服务器与用户相互能够识别。由于HTTP协议是无状态协议,即不能够识别客户端身份,即使客户端多次请求同一个url服务器仍然响应。这种协议导致服务器工作效率低下。为了解决这个问题,cookie产生的目的就是为了让服务器识别同一客户端。

cookie一般保存在客户端,工作步骤为:

1.客户端第一次请求,与服务器建立关联;

2.服务器向客户端发送cookie,包含两者间的身份识别信息;

3.客户端将cookie保存在本地;

4.客户端下次请求同一网址从本地提取cookie信息,供服务器识别客户端身份。

一、提取cookie

import requests

from http import cookieJar

#构建cookie对象

cookie=cookieJar.LWPCookieJar('cookie.txt')

#将cookie对象与session对象关联

session=requests.session()

session.cookies=cookie

try:

session.cookies.load(ignore_discard=True)

exept:

print('获取cookie失败')

二、保存cookie

r=session.post(url,data=data)

r.cookies.save('cookies.txt')

cookie的保存与提取的更多相关文章

  1. jQuery cookie插件保存用户登陆信息

    通过jquery cookie插件保存用户登录信息. 代码: <html>  <head>  <title>cookies.html</title>  ...

  2. [zz]【整理】Python中Cookie的处理:自动处理Cookie,保存为Cookie文件,从文件载入Cookie

    http://www.crifan.com/python_auto_handle_cookie_and_save_to_from_cookie_file/ #!/usr/bin/python # -* ...

  3. 设置cookie的保存时间 下一篇

    设置cookie的保存时间,通过cookie的expires性质指定一个终止时间就可以了.也就是说,你在设置cookie的时候,你的cookie字串要像下面这样组合: var d= new Date( ...

  4. JAVA- JSP中解决无法在Cookie当中保存中文字符的问题

    因为cookie的值是ASCII字符,不能直接把自定义cookie的值直接赋值为中文,但是要实现这个功能,还是有方法的. 1.java中已经给我们提供了方法,此时只需要导入该包就行 <%@ pa ...

  5. 修改服务器时间以后 cookie无法保存

    修改了服务器时间以后发现,cookie无法保存.通过查看异步请求的响应头信息  Date是之前修改的信息,并不是当前的时间. header('Date: Mon, 17 Mar 2015 05:34: ...

  6. pytorch1.0神经网络保存、提取、加载

    pytorch1.0网络保存.提取.加载 import torch import torch.nn.functional as F # 包含激励函数 import matplotlib.pyplot ...

  7. 如何利用cookie来保存用户登录账号

    众所周知,cookie在网页编写中不接或缺,今天就谈谈如何利用cookie技术来保存用户登录账号 1.首先是否保存用户登录账号当然是用户自行决定,所以我们需要在用户登录界面设置一个复选框,以此取得用户 ...

  8. 苹果safari浏览器登陆时Cookie无法保存的问题

    Safari浏览器不支持将非ASCII字符存入Cookie,所以中文在保存的时候就会出问题,分号(";")也不能存在Cookie中,所以需要通过方法去除内容中的分号,在Cookie ...

  9. Cookie不能保存中文解决方式

     在用cookie保存username的时候,发现cookie值不能存中文,报例如以下错: Control character in cookie value, consider BASE64 e ...

随机推荐

  1. 获取服务器classes根路径

    /** * 获取web应用路径 * @Description : 方法描述 * @Method_Name : getRootPath * @return * @return : String * @C ...

  2. c# 访问Mysql

    下载Connector/Net驱动程序,并安装. 通过MySQLConnection对象来连接数据库,连接MySQL的程序的最前面需要引用MySql.Data.MySqlClient. using M ...

  3. Android BitmapFactory图片压缩处理(大位图二次採样压缩处理)

    Android实际开发中.在载入大量图片的时候.比方ViewPager.GridView.ListView中,载入了大量的比較大图片就easy出现OOM(内存溢出)的异常,这是由于一个应用的最大内存使 ...

  4. VC进程间通信之消息传递PostMessge()或SendMessage()

    1.  进程内消息: (1). 仅仅传消息码 (2). 传送消息串 发送端: void CTestDlg::OnBnClickedButtonSend() { CString* msg = new C ...

  5. 上门洗车APP --- Androidclient开发 之 网络框架封装介绍(二)

    上门洗车APP --- Androidclient开发 之 网络框架封装介绍(二) 前几篇博文中给大家介绍了一下APP中的基本业务及开发本项目使用的网络架构: 上门洗车APP --- Androidc ...

  6. spring4.0.0的配置和使用

    1.创建一个javaproject或者webproject,我创建的时webproject,编译器用的时myeclipse2013 2.在lib文件夹以下倒入spring须要的一些核心包例如以下 还需 ...

  7. jQuery--基础(操作标签)

    jQuery-样式操作 .css() 可以直接使用来获取css的值   .css("color")     使用方法,如果想给查找到的标签添加样式: .css("colo ...

  8. 启动Eclipse时,启不起来JVM terminated. Exit code=-1

    启动Eclipse时,启不起来JVM terminated. Exit code=-1 出现错误了,不知道什么原因原本好好的Eclipse,今天早上出问题了,启动不起来还抛出JVM terminate ...

  9. Java异常 - Exception总结

    这篇blog总结的比较详细了. 如下图所示,在Java中所有异常的基类均为Throwable类.有两个子类,分别为Exception和Error.其中Error主要由JVM处理,比如OutOfMemo ...

  10. 深入理解Java 8 Lambda

    - 转载:blog1, blog2 以上两篇博客是对lambda表达式的深入理解,用于后续加深理解. 如下先从零开始理解lambda, 1. 接触lambda表达式是从python,javascrip ...