一文详解Cookie以及Selenium自动获取Cookie

前言

以后数据获取途径以及数据资产绝对会是未来核心要素生产工具和资源之一,每个大模型都离不开更加精细化数据的二次喂养训练。不过现在来看收集大量数据的方法还是有很多途径的,有些垂直领域的专业数据是很难获取得到的,靠人力去搜寻相当费时费力,而且处理起来也很麻烦,关键是不能准确的获取强相关数据就对项目开展妹太大帮助。之前本人一直从事的是大数据算法工作,对数据获取和收集这方面也有不错的技术开展,目前将开展新的技术专栏,将把深耕到数据收集和获取这方面的技术展现复盘。

1.什么是Cookie

很多时候我们发现如果我们这网页上面登录过账号,下次再访问该网站就会发现不用再输入密码账号就能登录了。想象一下你去一家咖啡店。第一次去,你告诉店员你的名字和你喜欢的咖啡类型。店员记住了这些信息。下次你再去,店员看到你就知道你叫什么名字,也知道你喜欢什么咖啡,于是直接为你准备了你喜欢的咖啡。

在这个例子中,咖啡店就像一个网站,你就像是访问网站的用户。你提供的名字和咖啡偏好就像是你在网站上输入的信息。咖啡店员记住你的信息,这就像网站在你的电脑上存储Cookie一样。所以,Cookie就是网站为了记住用户的偏好或者身份信息而存储在用户电脑上的小型数据文件。这样,下次你访问同一个网站时,它可以快速地识别你,并根据存储的信息定制内容,就不用再次账号登录了。

在了解到了cookie具有什么样的功能以后,我们再来对cookie更加深入的了解。

2.Cookie的作用和数据形式

有时候浏览网站会出现:

在这里插入图片描述

的弹窗提示,根据弹窗提示其实我们就能够看出cookie的一些作用:能够发现我们的需求,还能分析我们的流量和网站使用情况,也就是监视我们用户的浏览习惯和活动。广告商还能使用Cookie来收集关于我们的信息,以显示更相关的广告。这是基于你的浏览历史和其他在线行为,所以这就是为什么我们之前搜了某某用品,某宝某东就直接开始推送了,还有视频网站某书和某站也会陆续推送相关视频。当然如果你开了无痕模式,那么浏览器也不会保存cookie。

总结一下cookie的作用,有以下几点:

  • 身份认证和会话管理:当你登录一个网站后,该网站会使用Cookie来记住你的登录状态,这样你就不必在每次访问新页面时都重新登录。
  • 个性化设置:网站利用Cookie存储个性化设置,比如语言偏好、主题选择等,以便在你下次访问时提供相同的定制体验。
  • 追踪和分析:网站使用Cookie来追踪用户的浏览习惯和活动。这对于网站改进其内容和结构、提供更加个性化的体验非常有用。
  • 广告定位:广告商使用Cookie来收集关于你的信息,以显示更相关的广告。这是基于你的浏览历史和其他在线行为的。
  • 过期时间:Cookie可以设置不同的过期时间。有些在关闭浏览器时就会消失(会话Cookie),而另一些则会在特定日期后才会消失(持久性Cookie)。
  • 隐私和安全:虽然Cookie对提升网站体验很重要,但它们也引发了隐私和安全上的担忧。用户通常可以在浏览器设置中管理Cookie,包括删除和禁用它们。
  • 第三方Cookie:除了由网站直接设置的Cookie(第一方Cookie)外,还有第三方Cookie,通常由广告商和分析服务提供商设置,用于跨网站追踪用户行为。

了解以上几点之后,我们再来看看cookie具体存储的数据格式是怎么样的。每个浏览器对于cookie的存储和设置都不一样,以火狐浏览器为例,直接在浏览器搜索设置就可以看到:

在这里插入图片描述

在下方可以看到浏览器存储的cookie:

在这里插入图片描述

点击管理数据

在这里插入图片描述

如果经常浏览某个网站,我这里是bilibili,就会发现存储的cookie占用内存特别多,也就是存储你的个性行为特别多。那么如何查看一个cookie呢?

根据步骤来,以CSDN为例,输入F12进入开发者模式,点击存储,在界面左边都能看到存储的Cookie:

在这里插入图片描述

一般cookie是一段不超过4KB的小型文本数据,由一个名称(Name)、一个值(Value)和其它几个用于控制Cookie有效期、安全性、使用范围的可选属性组成。有些服务端设置都cookie很复杂,关键字段就很多,有些就非常简单。

3.cookie属性

我们现了解cookie保存的数据都有哪些属性

在这里插入图片描述

(1)Name/Value:名称和值设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌。

(2)Domain属性:指定了可以访问该 Cookie 的 Web 站点或域。Cookie 机制并未遵循严格的同源策略,允许一个子域可以设置或获取其父域的 Cookie。当需要实现单点登录方案时,Cookie 的上述特性非常有用,然而也增加了 Cookie受攻击的危险,比如攻击者可以借此发动会话定置攻击。因而,浏览器禁止在Domain属性中设置.org、.com 等通用顶级域名、以及在国家及地区顶级域下注册的二级域名,以减小攻击发生的范围。

(3)Path属性:定义了Web站点上可以访问该Cookie的目录,一般csrToken就有此属性。

(4)Expires属性:设置Cookie的生存期。有两种存储类型的Cookie:会话性与持久性。Expires属性缺省时,为会话性Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;持久性Cookie会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效。

(5)Secure属性:指定是否使用HTTPS安全协议发送Cookie。使用HTTPS安全协议,可以保护Cookie在浏览器和Web服务器间的传输过程中不被窃取和篡改。该方法也可用于Web站点的身份鉴别,即在HTTPS的连接建立阶段,浏览器会检查Web网站的[证书的有效性。但是基于兼容性的原因(比如有些网站使用自签署的证书)在检测到SSL证书无效时,浏览器并不会立即终止用户的连接请求,而是显示安全风险信息,用户仍可以选择继续访问该站点。由于许多用户缺乏安全意识,因而仍可能连接到Pharming攻击所伪造的网站

(6)HTTPOnly 属性 :用于防止客户端脚本通过document.cookie属性访问Cookie,有助于保护Cookie不被跨站脚本攻击窃取或篡改。但是,HTTPOnly的应用仍存在局限性,一些浏览器可以阻止客户端脚本对Cookie的读操作,但允许写操作;此外大多数浏览器仍允许通过XMLHTTP对象读取HTTP响应中的Set-Cookie头

这都是每一条cookie元素所自带的属性,那么我们再聚焦于cookie的名称一般都有哪些含义。

4.Cookie名称

在这里插入图片描述

Cookie的名称(Name)是用来唯一标识不同的Cookie。名称可以根据Cookie的用途来命名,以下是一些常见的Cookie名称和它们的用途:

名称(Name)用途
session_id/PHPSESSID用于标识用户的会话。这种类型的Cookie通常用于登录后保持用户状态。
user_id /uid用来标识特定用户,可能用于跟踪或个性化。
remember_me通常与长期登录功能有关,用于记住用户的登录状态。
token /auth_token用于存储身份验证令牌,通常用于API调用或维持登录状态。
preferences /settings保存用户设置和偏好,例如界面主题、语言设置等。
cart/shopping_cart对于电商网站,用来跟踪用户的购物车内容。
analytics /tracking_id用于网站分析和用户跟踪,可能用于统计用户访问行为。
csrftoken/ XSRF-TOKEN于跨站请求伪造(CSRF)保护。
ads/ ad_id广告相关的跟踪,用于个性化广告显示。
locale/ language存储用户的语言偏好。
cookie_consent/ consent记录用户对Cookie使用的同意。

以上基本是cookie包含的所有标识了,当然也有很多网站的cookie有更多其他的业务或者是其他笔记防范爬虫等机制,下面我们来利用Python Selenium来获取我们当前的cookie。

5.获取Cookie

获取Cookie的方法特别多,可以用Web浏览器中的JavaScript,可以通过document.cookie属性来访问当前页面的Cookie。也可以在HTTP请求头中接收Cookie。例如,在PHP中,可以通过$_COOKIE全局数组访问Cookie;在Node.js中,可以通过HTTP请求对象的headers.cookie属性访问。或者Python的Requests, Node.js的Axios等。这里展示如何用浏览器自动化工具Selenium来提取浏览器的cookie。如果对selenium不了解的推荐去看博主写的selenium详细介绍的博客。

首先引入库:

from selenium import webdriver

cookie登入前和登入后所存储的是不一致的,所以我们可以前后两次获取cookie看哪些值是存在变动的,这次获取的是csdn博客cookie。

def password_login(self):self.driver = webdriver.Firefox()self.driver.get("https://blog.csdn.net/")cookieBefore = self.driver.get_cookies()time.sleep(2)self.driver.find_element(By.LINK_TEXT, "登录").click()#登入后再获取一次cookietime.sleep(2)#扫码time.sleep(20)print("登录后!")cookiesAfter = self.driver.get_cookies()print("cookiesAfter:")print(cookiesAfter)

大家可以自己运行一遍,因为cookie是隐私内容这里就不作演示了。

点关注,防走丢,如有纰漏之处,请留言指教,非常感

以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2661850.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【代码随想录】刷题笔记Day42

前言 这两天机器狗终于搞定了,一个控制ROS大佬,一个计院编程大佬,竟然真把创新点这个弄出来了,牛牛牛牛(菜鸡我只能负责在旁边喊加油)。下午翘了自辩课来刷题,这次应该是元旦前最后一刷了&…

2023年度总结(找到工作)

转眼2023年结束了,今天已经12月29日了。从2022年12月25日考研失败后,2023年就变成了找工作以及上班度日的时光了。针对2023年,我想对自己所说的是:终于找到工作了。作为一个普通的专升本,考研落榜生来说,能…

电子工程师如何接私活赚外快?

对电子工程师来说,利用业余时间接私活是个很常见的技术,不仅可以赚取额外收入,也能提升巩固技术,可以说国内十个工程师,必有五个在接私活养家糊口,如果第一次接私活,该如何做? 很多工…

Mybatis行为配置之Ⅲ—其他行为配置项说明

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…

力扣:968. 监控二叉树(贪心,二叉树)

题目: 给定一个二叉树,我们在树的节点上安装摄像头。 节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。 计算监控树的所有节点所需的最小摄像头数量。 示例 1: 输入:[0,0,null,0,0] 输出:1 解释&…

iPortal内置Elasticsearch启动失败的几种情况——Linux

作者:yx 文章目录 前言一、端口占用二、ES启动过慢三、磁盘占用过高,导致ES变为只读模式 前言 在Linux环境启动iPortal后有时会出现搜索异常的情况,如下截图,这是因为Elasticsearch(以下简称“ES”)没启动…

集群部署篇--Redis 主从模式

文章目录 前言Redis 主从部署:1.1 主从架构 介绍:1.2 主从架构 实现:1.2.1 redis 安装: 1.3 主从架构优缺点:1.4 故障转移: 总结 前言 显然在线上环境中 Redis 服务不能以单机的方式运行,必须有…

华为发布的工业软件三大难题:适用于CAD领域的NURBS裁剪曲面自交快速检测

以下内容转载: 自相交,在几何图形有效性验证中的一个错误类型,面要素的自相交在原始数据中是最常见的,这种错误有些可以人工发现,但有些就需要借助程序来发现。 发生自相交的根本原因情况比较多,有些是因为…

3-链表-删除链表的倒数第 N 个结点

这是链表的第三篇算法,力扣链接。 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 示例 1: 输入:head [1,2,3,4,5], n 2 输出:[1,2,3,5]示例 2: 输入:head [1],…

探索 WebRTC:数字世界的实时通信魔法

前言 在当今日常生活中,我们期望能够随时随地与朋友、同事或家人进行实时沟通。WebRTC(Web实时通信)技术就像一种魔法,让这些交流变得无比便捷,而且完全在浏览器中实现,无需下载任何额外应用或插件。 Web…

Java限流方案常用算法详解 固定时间窗口 滑动时间窗口 漏桶限流 令牌桶限流

前言 为什么要做限流? 服务需要保护自己,以免被太多的请求淹没(无论是恶意或无意的),从而保持可用性。 举个生活中的例子,某个景区,平时可能根本没什么人前往,但是一旦到了国庆假日…

W5100S-EVB-Pico评估版介绍

文章目录 1 简介2 硬件资源2.1 硬件规格2.2 引脚定义2.3 工作条件 3 参考资料3.1 Datasheet3.2 原理图3.3 尺寸图(单位:mm)3.4 参考例程 4 硬件协议栈优势 1 简介 W5100S-EVB-Pico是一款基于树莓派RP2040和全硬件TCP/IP协议栈以太网芯片W5100…

Nginx服务器中设置禁止访问文件或目录的方法

location ^~ /assets/ { deny all; } 已启用目录浏览 在nginx要禁止某个或一类资源,只需要增加一个location,然后在其中使用deny all即可。 禁止访问扩展名为bat的文件,配置如下: location ~* /.bat { deny all…

Diffusion Model 学习笔记

论文链接:Denoising Diffusion Probabilistic Models。 Diffusion Model 分为两部分,前向扩散过程和后向生成过程,前向扩散过程从一张原始图像逐步加噪声变为一张纯噪声图像,后向生成过程则从随机噪声来逐步恢复出原图像。 贝叶…

HiWoo Box:远程监控DCS的强大助手

在工业自动化领域,分布式控制系统(DCS)被广泛应用于各种生产流程中,如化工、电力、制药等。然而,随着企业规模的扩大和生产流程的复杂化,对DCS的远程监控需求也日益迫切。HiWoo Box作为一种功能强大的工业智…

纯CSS实现马里奥效果,回忆一下童年吧

📢 鸿蒙专栏:想学鸿蒙的,冲 📢 C语言专栏:想学C语言的,冲 📢 VUE专栏:想学VUE的,冲这里 📢 CSS专栏:想学CSS的,冲这里 &#x1f4…

基于彩虹表碰撞法破解SHA/MD5等hash加密——半非暴力破解哈希逆运算

背景知识 哈希加密算法应用范围广泛,包括但不限于:Unix风格的用户密码(Linux、*BSD、Solaris、AIX、QNX等)、macOS、Windows、Web应用程序(如WordPress)、办公软件(如Notes、Domino&#xff09…

亚信安慧AntDB数据库——通信运营商核心系统的全面演进

AntDB数据库源自通信运营商核心系统,经过15年的平稳运行和不断演进,成功跟随通信技术的升级步伐,逐步迈向5G时代,并且在这期间完成了8次大版本的迭代,为行业树立了技术领先的典范。其独特之处在于具备超融合架构&#…

DDAE: Denoising Diffusion Autoencoders are Unified Self-supervised Learners

DDAE: Denoising Diffusion Autoencoders are Unified Self-supervised Learners Paper:https://arxiv.org/abs/2303.09769 Code:https://github.com/FutureXiang/ddae TL; DR:扩散模型的训练其实就是训练一个去噪模型,考虑到类似…

clickhouse连接工具dbeaver

地址 地址: Download | DBeaver Community 安装 表引擎 表引擎之TinyLog 以列文件的形式保存在磁盘上,不支持索引,没有并发控制。一般保存少量数据的小表, 生产环境上作用有限,多用于平时练习测试用。 内存引擎&am…