当前位置: 首页 > news >正文

HTTP——Cookie

HTTP——Cookie

  • 什么是Cookie
  • 通过Cookie访问网站

我们之前了解了HTTP协议,如果还有小伙伴还不清楚HTTP协议,可以点击这里:

https://blog.csdn.net/qq_67693066/article/details/136895597

我们今天来稍微了解一下HTTP里面一个很小的部分:Cookie

什么是Cookie

Cookie是一种小型的文本文件,由网站服务器发送到用户的浏览器,并存储在用户的计算机上。它包含着网站的相关信息,如用户的偏好设置、登录状态等。
Cookie的组成包括一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性。Cookie的尺寸通常不超过4KB。
Cookie的工作原理是,当用户访问一个网站时,网站服务器会在HTTP响应头中添加一个Set-Cookie标头,其中包含了Cookie的信息。浏览器接收到响应后,会将这些Cookie保存在本地。之后,当用户再次访问该网站时,浏览器会在HTTP请求头中添加一个Cookie标头,将之前存储的Cookie信息发送给服务器。服务器通过解析这些Cookie信息,可以获取用户的状态、偏好等信息。
Cookie的发明可以追溯到1994年,由网景公司的程序员Lou Montulli发明。他为了解决HTTP协议无状态的限制而创建了Cookie,以便在用户和网站之间共享信息。
Cookie的主要作用包括跟踪用户行为、保存用户状态、记录用户偏好、实现购物车功能等。它广泛应用于登录状态管理、个性化内容推荐、购物体验改善、广告投放以及网站流量分析等领域。

比如我现在在写博客,如果我们是第一次打开这个网页,我们可以打开浏览器的检查功能,找到“网络”,然后点进去一个GET请求:
在这里插入图片描述

关闭再次打开,这个时候我们可以再次点击检查,再次查看请求头:
在这里插入图片描述
这个时候我们的浏览器就有了Cookie,这个Cookie帮我们存储了一些信息:

在这个Cookie字符串中,有几个重要的字段。以下是这些字段的详细解释:

  1. uuid_tt_dd:这个字段表示用户的唯一标识符。它通常用于跟踪用户的活动和会话。在这个例子中,uuid_tt_dd的值是10_6637840340-1670159414905-338951
  2. log_Id_pv:这个字段表示页面浏览次数。它用于记录用户在网站上浏览的页面数量。在这个例子中,log_Id_pv的值是587
  3. Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac:这个字段是一个用于跟踪用户访问网站的时间戳。它通常用于分析用户在网站上的停留时间和访问模式。在这个例子中,Hm_lvt_6bcd52f51e9b3dce32bec4a3997715ac的值是1711556895,1711576221,1711577673,1711578178
  4. Hm_up_6bcd52f51e9b3dce32bec4a3997715ac:这个字段包含了用户的一些属性,如是否登录、是否在线、是否是VIP等。这些属性通常用于个性化推荐和用户分析。在这个例子中,Hm_up_6bcd52f51e9b3dce32bec4a3997715ac的值是%7B%22islogin%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isonline%22%3A%7B%22value%22%3A%221%22%2C%22scope%22%3A1%7D%2C%22isvip%22%3A%7B%22value%22%3A%220%22%2C%22scope%22%3A1%7D%2C%22uid_%22%3A%7B%22value%22%3A%22qq_67693066%22%2C%22scope%22%3A1%7D%7D
  5. dc_sid:这个字段表示用户的会话ID。它通常用于跟踪用户的会话状态和身份验证。在这个例子中,dc_sid的值是6d962e108e2c139d8e435550a8a4d5c3

这些字段只是Cookie字符串中的一部分,实际上还有其他字段。这些字段通常用于跟踪用户的行为、分析用户的兴趣和偏好,以及提供个性化的服务。

通过Cookie访问网站

我们这里通过Cookie来访问香港的淘宝,进入淘宝(香港版):
在这里插入图片描述
将Cookie的文本内容存放在txt文件中,这里我保存在桌面上:
在这里插入图片描述
然后在pycharm中编写以下代码:

import requests
from urllib.parse import unquote
import urllib.parse# 打开txt文件并读取内容
url = 'https://world.taobao.com/?spm=a2141.241046-hk.logo.1.41ca5adbDMl5rh' # 香港淘宝地址
with open('C:\\Users\\luoshui\\Desktop\\cookie.txt','r',encoding='utf-8') as file:cookie_str = file.read().strip()  # 读取内容并去除两端的空白字符decoded_cookie_str = unquote(cookie_str)# 使用分号将字符串分割成单独的Cookie
decoded_cookie_str = decoded_cookie_str.split(';')# 创建一个字典来存储Cookie键值对
cookies_dict = {}# 遍历分割后的Cookie列表,并添加到字典中
for cookie in decoded_cookie_str:# 去除每个Cookie两端的空格,并使用等号分割键和值key, value = cookie.strip().split('=', 1)# 在循环内解码值value = urllib.parse.quote(value.encode('utf-8'))# 将Cookie添加到字典中cookies_dict[key] = value# 打印分割后的Cookie字典
print(cookies_dict)# 发起请求
response = requests.get(url, cookies= cookies_dict)# 检查请求是否成功
if response.status_code == 200:# 请求成功,可以处理响应内容print("请求成功!")print(response.text)  # 打印网页的HTML内容
else:# 请求失败,打印错误信息print(f"请求失败,状态码:{response.status_code}")

运行:
在这里插入图片描述
点击url:
在这里插入图片描述
在这里插入图片描述
我们还可以切换地址到韩国,访问韩国的淘宝(把url地址换为韩国的,同时cookie也换成韩国的):

import requests
from urllib.parse import unquote
import urllib.parse# 打开txt文件并读取内容
url = 'https://world.taobao.com/?spm=a2141.241046-kr.logo.1.41ca5adbMdFW4f' # 地址换为韩国的
with open('C:\\Users\\luoshui\\Desktop\\cookie.txt','r',encoding='utf-8') as file:cookie_str = file.read().strip()  # 读取内容并去除两端的空白字符decoded_cookie_str = unquote(cookie_str)# 使用分号将字符串分割成单独的Cookie
decoded_cookie_str = decoded_cookie_str.split(';')# 创建一个字典来存储Cookie键值对
cookies_dict = {}# 遍历分割后的Cookie列表,并添加到字典中
for cookie in decoded_cookie_str:# 去除每个Cookie两端的空格,并使用等号分割键和值key, value = cookie.strip().split('=', 1)# 在循环内解码值value = urllib.parse.quote(value.encode('utf-8')).replace('%3B', ';').replace('%3D', '=')# 将Cookie添加到字典中cookies_dict[key] = value# 打印分割后的Cookie字典
print(cookies_dict)# 发起请求
response = requests.get(url, cookies= cookies_dict)# 检查请求是否成功
if response.status_code == 200:# 请求成功,可以处理响应内容print("请求成功!")print(response.text)  # 打印网页的HTML内容
else:# 请求失败,打印错误信息print(f"请求失败,状态码:{response.status_code}")

在这里插入图片描述
如果不行,大家记得点一下“淘宝”旁边的名字:
在这里插入图片描述

在这里插入图片描述

相关文章:

HTTP——Cookie

HTTP——Cookie 什么是Cookie通过Cookie访问网站 我们之前了解了HTTP协议,如果还有小伙伴还不清楚HTTP协议,可以点击这里: https://blog.csdn.net/qq_67693066/article/details/136895597 我们今天来稍微了解一下HTTP里面一个很小的部分&…...

Scala大数据开发

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl Scala简述 在此,简要介绍 Scala 的基本信息和情况。 Scala释义 Scala 源自于英语单词scalable,表示可伸缩的、可扩展的含义。 Scala作者 Scala编…...

windows无法使用hadoop报错:系统找不到路径

在windows下安装hadoop-3.1.4,进行环境变量配置后,打开window命令行窗口测试hadoop命令,报错,如图所示: 方案:由于JAVA_HOME路径有空格导致,可修改hadoop下\etc\hadoop\hadoop_env.cmd文档中set JAVA_HOME以…...

从0配置React

在本地安装和配置React项目,您可以使用create-react-app这个官方推荐的脚手架工具。以下是安装React的步骤,包括安装Node.js、使用create-react-app创建React应用,以及启动开发服务器。 下载安装node.js运行以下命令,验证Node.js…...

File和IO流

1. File类常用方法 1.1 获取基本属性 • public String getName() :获取名称 • public String getPath() :获取路径 • public String getAbsolutePath():获取绝对路径 • public File getAbsoluteFile():获取绝对路径表示…...

2024系统架构师---解释器架构风格的概念与应用

解释器架构风格是一种软件架构模式,用于构建那些能够读取、解析并执行用户定义的命令或程序代码的系统。这种架构风格的关键在于提供一个运行时环境,它能够理解和执行预定义或用户定义的语言或指令集。通过这种方式,解释器模式能够为特定领域…...

makefile01

什么是makefile Makefile 文件描述了 Linux 系统下 C/C 工程的编译规则,它用来自动化编译 C/C 项目。一旦写编写好 Makefile 文件,只需要一个 make 命令,整个工程就开始自动编译,不再需要手动执行 GCC 命令。一个中大型 C/C 工程…...

计算机视觉之三维重建(6)---多视图几何(上)

文章目录 一、运动恢复结构问题(SfM)二、欧式结构恢复2.1 概述2.2 求解2.3 欧式结构恢复歧义 三、仿射结构恢复3.1 概述3.2 因式分解法3.3 总结3.4 仿射结构恢复歧义 一、运动恢复结构问题(SfM) 1. 运动恢复结构问题:通…...

蓝桥杯:全球变暖(python,BFS,DFS)(栈溢出的处理办法)

图论的经典题型,深度优先搜索和广度优先搜索都可以,但是本题推荐使用广度优先搜索(类似的题最好都用广度优先搜索),因为使用深度优先搜索会爆栈(栈溢出)。本篇博客两种方法都进行讲解&#xff0…...

Qt C++ | Qt 元对象系统、信号和槽及事件(第一集)

01 元对象系统 一、元对象系统基本概念 1、Qt 的元对象系统提供的功能有:对象间通信的信号和槽机制、运行时类型信息和动态属性系统等。 2、元对象系统是 Qt 对原有的 C++进行的一些扩展,主要是为实现信号和槽机制而引入的, 信号和槽机制是 Qt 的核心特征。 3、要使用元…...

Python 抽象类

在Python的抽象基类(ABC)中,方法并不是必须全部是抽象方法。抽象基类可以同时包含抽象方法和具体方法。抽象类中可以有抽象方法也可以定义具体方法 具体来说: 抽象方法: 使用abc.abstractmethod装饰器标记的方法是抽象方法。抽象方法没有方法体,只有方法签名。抽象方法必须在具…...

达梦数据库自动备份(全库)+还原(全库) 控制台

一 前提 1.安装达梦数据库DB8(请参照以前文章) 我的数据库安装目录是 /app/dmDB8 2.已创建实例 (请参照上一篇文章) 二 准备测试数据 三 自动备份步骤 1.开启归档模式 开启DM管理工具管理控制台 弹不出来工具的 输入命令 xhost 第一步 将服务器转换为配置状态 右键-&g…...

android AndroidAutoSize 取消第三方库适配问题(两个步骤)

比如第三方库的Activity是:PictureSelectorSupporterActivity、PictureSelectorTransparentActivity、CropImageActivity 1.在自定义Application 的 onCreate 方法设置: Overridepublic void onCreate() {super.onCreate();this.mAppthis;registerActi…...

【Java 多线程】从源码出发,剖析Threadlocal的数据结构

文章目录 exampleset(T value)createMap(t, value);set(ThreadLocal<?> key, Object value)ThreadLocalMap和Thread的关系 全貌 ThreadLocal是个很重要的多线程类&#xff0c;里面数据结构的设计很有意思&#xff0c;很巧妙。但是我们平时使用它的时候常常容易对它的使用…...

Sy6 编辑器vi的应用(+shell脚本3例子)

实验环境&#xff1a; 宿主机为win11&#xff0c;网络&#xff1a;10.255.50.5 6389 WSL2 ubuntu 目标机的OS&#xff1a;Ubuntu 内核、版本如下&#xff1a; linuxpeggy0223:/$ uname -r 5.15.146.1-microsoft-standard-WSL2 linuxpeggy0223:/$ cat /proc/version Linux vers…...

把标注数据导入到知识图谱

文章目录 简介数据导入Doccano标注数据&#xff0c;导入到Neo4j寻求帮助 简介 团队成员使用 Doccano 标注了一些数据&#xff0c;包括 命名实体识别、关系和文本分类 的标注的数据&#xff1b; 工作步骤如下&#xff1a; 首先将标注数据导入到Doccano&#xff0c;查看一下标注…...

【前端基础】什么是类数组对象,类数组对象转换成数组的方法

类数组对象&#xff08;array-like object&#xff09;是指在 JavaScript 中具有类似数组的特征但不是真正的数组的对象。这些对象具有类似数组的特性&#xff0c;例如有一个 length 属性和通过索引访问元素的能力&#xff0c;但它们不具备数组对象的所有方法和特性。 什么是类…...

Python快速入门系列-8(Python数据分析与可视化)

第八章:Python数据分析与可视化 8.1 数据处理与清洗8.1.1 数据加载与查看8.1.2 数据清洗与处理8.1.3 数据转换与整理8.2 数据可视化工具介绍8.2.1 Matplotlib8.2.2 Seaborn8.2.3 Plotly8.3 数据挖掘与机器学习简介8.3.1 Scikit-learn8.3.2 TensorFlow总结在本章中,我们将探讨…...

双非硕转测试之Java学习笔记(一):集合

Java学习-----集合 简单概括单列集合--collectionlist接口&#xff1a;vector类&#xff1a;LinkedList类&#xff1a;set接口&#xff1a;HasSet类&#xff1a;LinkedHashSet类&#xff1a; 双列集合--MapMap接口&#xff1a;HashMap类&#xff1a;HashTable类&#xff1a;Pro…...

zabbix源码安装

目录 一.安装php和nginx客户端环境 二.修改php配置 三.修改nginx配置文件 四.下载并编译zabbix 五.创建zabbix需要的用户及组 六.安装编译需要的依赖 七.配置zabbix文件 八.数据库配置 九.配置zabbix 十.web界面部署 十一.遇到无法创建配置文件 十二.登录zabbix 前…...

滚动轴承动力学模型代码复现及三维模型SolidWorks文件分享

滚动轴承动力学模型代码 #指定了某篇paper复现&#xff0c;具体都如图打包在文件夹了&#xff0c;保证程序可以打开。 给出轴承三维模型solidworks软件打开2019版本可以打开。打开SolidWorks轴承模型时&#xff0c;金属滚珠与保持架的精密配合让人想起小时候拆解机械闹钟的经历…...

国光黑苹果安装完整指南:OpenCore配置终极教程

国光黑苹果安装完整指南&#xff1a;OpenCore配置终极教程 【免费下载链接】Hackintosh 国光的黑苹果安装教程&#xff1a;手把手教你配置 OpenCore 项目地址: https://gitcode.com/gh_mirrors/hac/Hackintosh 你是否渴望在普通PC上体验macOS的流畅与优雅&#xff0c;但…...

别再死记硬背了!用‘快递寄送’和‘跨国通话’的比喻,5分钟搞懂OSI七层模型与TCP/IP五层模型

快递与越洋电话&#xff1a;用生活场景拆解网络分层模型 想象一下&#xff0c;你网购的商品从深圳工厂到北京家门口&#xff0c;要经过打包、装车、跨省运输、本地配送多个环节——这和网络数据传输的层层封装如出一辙。而当你给海外亲友视频通话时&#xff0c;双方手机自动协商…...

计算机毕业设计springboot研友帮系统设计与实现 基于SpringBoot的考研互助社区平台开发与实现 SpringBoot框架下研究生学术协作系统的设计与应用

计算机毕业设计springboot研友帮系统设计与实现w2zpm5oh &#xff08;配套有源码 程序 mysql数据库 论文&#xff09; 本套源码可以在文本联xi,先看具体系统功能演示视频领取&#xff0c;可分享源码参考。 随着研究生招生规模的持续扩大&#xff0c;考研竞争日益激烈&#xff0…...

ZeroOmega代理规则引擎:构建智能化网络访问策略

ZeroOmega代理规则引擎&#xff1a;构建智能化网络访问策略 【免费下载链接】ZeroOmega Manage and switch between multiple proxies quickly & easily. 项目地址: https://gitcode.com/gh_mirrors/ze/ZeroOmega 在数字化生活中&#xff0c;我们每天都在与各种网络…...

ChatTTS实战:从WAV到PT的高效转换技术解析

在语音合成和语音处理的工作流中&#xff0c;数据预处理是至关重要的一环。我们常常从麦克风、录音设备或公开数据集中获得最原始的WAV格式音频&#xff0c;但深度学习模型&#xff0c;尤其是基于PyTorch的模型&#xff0c;其“母语”是张量&#xff08;Tensor&#xff09;。因…...

SleeperX:如何彻底解决MacBook电源管理的3个核心痛点

SleeperX&#xff1a;如何彻底解决MacBook电源管理的3个核心痛点 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX 你是否经历过这些场景&#xff1f;正在…...

小白必看:Ollama部署translategemma-12b-it图文翻译模型完整流程

小白必看&#xff1a;Ollama部署translategemma-12b-it图文翻译模型完整流程 1. 准备工作与环境搭建 1.1 系统要求与安装Ollama 在开始部署translategemma-12b-it模型前&#xff0c;请确保您的系统满足以下基本要求&#xff1a; 操作系统&#xff1a;支持Windows 10/11&…...

NumPy:数组复制与视图

在使用 NumPy 进行数据处理时&#xff0c;数组对象不仅可以被读取或修改&#xff0c;还经常需要在不同变量或不同数组之间进行“复制”。例如&#xff1a;将一个数组赋值给另一个变量、通过切片获取数组的一部分、或显式创建新的数组副本。需要注意的是&#xff0c;这些操作在语…...

Node.js内存泄漏排查指南:从Chrome DevTools到heapdump的实战记录

Node.js内存泄漏排查实战&#xff1a;从预警信号到精准修复 当线上监控系统突然发出内存告警&#xff0c;你的Node.js服务正在以每小时100MB的速度吞噬服务器内存——这不是演习&#xff0c;而是一场真实的生产事故前兆。作为经历过数十次内存泄漏战役的老兵&#xff0c;我将带…...