登录态数据抓取:Python爬虫携带Cookie与Session的应用技巧

概述

在进行网络数据抓取时,有些数据需要用户处于登录状态才能获取。这时就需要使用Cookie和Session来维持登录态。Cookie是服务器发给浏览器的小数据片段,存储在用户计算机中,用于在用户请求时辨识用户身份。Session则是存储在服务器端的用户会话信息,用于保持用户的活动状态。

什么是Cookie和Session

Cookie是一种小型文本文件,由网站服务器发送给用户浏览器,存储在用户本地计算机上。主要用于跟踪用户在网站上的活动,如登录信息、购物车内容等。每个Cookie都包含了一个键值对,用于识别用户和追踪其行为。通过携带Cookie信息,网站可以识别用户身份和保存用户的个性化设置,从而提供更好的用户体验。
Session是服务器端创建的关于用户会话的信息集合。在用户首次访问服务器时,服务器会为用户分配一个唯一的会话ID,并在服务器端存储与该ID相关的信息。通过Session,服务器可以跟踪用户的会话状态,保存用户的登录状态、购物车内容等数据,以确保用户在同一会话期间的连续性。Session通常用于保持用户登录状态,以及在用户跨页面进行交互时传递信息。与Cookie不同的是,Session数据存储在服务器端,相对更安全,但也需要更多的服务器资源来维护。

使用方式

在处理需要登录态的数据时,以下几种方式是常见且有效的:

方式一:将Cookie插入Headers请求头

import requestssession = requests.Session()# 将Cookie插入Headers请求头
headers = {'User-Agent': 'Mozilla/5.0','Cookie': 'your_cookie_here'
}
response = session.get("https://www.example.com", headers=headers)print(response.text)session.close()

方式二:Cookies直接作为requests方法的参数

import requestscookies = {'cookie_name': 'cookie_value'
}response = requests.get("https://www.example.com", cookies=cookies)print(response.text)

方式三:session会话保持

import requestssession = requests.Session()# 模拟登录操作
login_data = {'username': 'your_username', 'password': 'your_password'}
session.post('https://www.example.com/login', data=login_data)# 后续请求会自动携带会话信息
response = session.get('https://www.example.com/profile')print(response.text)session.close()

如何保持IP不变

在某些场景下,需要保持请求的IP地址不变,可以通过代理来实现。下面是一个简单的示例代码:

import requestssession = requests.Session()# 设置代理信息
proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "16QMSOML"
proxyPass = "280651"proxy = {'http': f'http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}','https': f'http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}'
}
session.proxies = proxy# 发送请求
response = session.get("http://example.com")
print(response.text)session.close()

京东案例

下面我们以京东网站为例,演示如何使用Python爬虫携带Cookie与Session的应用技巧:

import requestssession = requests.Session()# 代理设置
proxyHost = "www.16yun.cn"
proxyPort = "5445"
proxyUser = "16QMSOML"
proxyPass = "280651"
proxies = {"http": f"http://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}","https": f"https://{proxyUser}:{proxyPass}@{proxyHost}:{proxyPort}"
}# 模拟登录京东
login_data = {'username': 'your_username', 'password': 'your_password'}
session.post('https://passport.jd.com/login', data=login_data, proxies=proxies)# 获取个人订单页
response = session.get('https://order.jd.com/myOrder', proxies=proxies)
print(response.text)session.close()

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法的基本概念和复杂度

目录 一. 算法的基本概念1.1 什么是算法1.2 算法的五个特性1.3 怎么才算好的算法 二. 算法的时间复杂度三. 算法的空间复杂度 \quad 一. 算法的基本概念 \quad \quad 1.1 什么是算法 算法可以用自然语言来描述, 也可以用伪代码和代码来描述 \quad 1.2 算法的五个特性 有穷性, 一…

【C#动态加载数据】“防界面卡死”

废话不多说,直接开始 添加引用 using System.ComponentModel 完整代码 using System; using System.ComponentModel; using System.Data; using System.Windows.Forms; using System.Data.SqlClient; // 引入SqlClient命名空间以使用ADO.NET public part…

Flink 流处理框架核心性能

Apache Flink 是一款先进的开源分布式数据处理框架,其核心特性体现了对大规模数据处理的高度适应性和灵活性,尤其在实时流处理领域展现出了卓越的技术优势: 1 高性能实时处理 Flink 引擎设计注重高吞吐量与低延迟的完美结合,可轻…

ASP.NET-Server.HtmlEncode

目录 背景: 1.转义特殊字符: 2.防止跨站脚本攻击(XSS): 3.确保输出安全性: 4.保留原始文本形式: 5.与用户输入交互安全: 实例说明: 不用Server.HtmlEncode 效果展示: 用Server.HtmlEnc…

SpringMVC重点记录

目录 1.学习重点2.回顾MVC3.回顾servlet4.初始SpringMVC4.1.为什么要学SpringMVC?4.2.SpringMVC的中重点DispatcherServlet4.3.SpringMVC项目的搭建4.4.MVC框架要做哪些事情?4.5.可能会遇到的问题 5.SpringMVC的执行原理6.使用注解开发SpringMVC7.Controller控制总结8.RestF…

VSCode ARM CortexM 开发

VSCode ARM CortexM 开发: http://coffeelatte.vip.cpolar.top/post/software/applications/vscode/vscode_arm_cortexm_开发/ 文章目录 VSCode ARM CortexM 开发: <http://coffeelatte.vip.cpolar.top/post/software/applications/vscode/vscode_arm_cortexm_%E5%BC%80%E5%…

低代码与数智制造:引领软件开发的革新之旅

在当今快速发展的数字化时代&#xff0c;软件开发已经渗透到各行各业&#xff0c;成为推动社会进步的重要力量。随着技术的不断进步&#xff0c;低代码开发与数智制造正逐渐崭露头角&#xff0c;成为引领软件开发领域革新的两大关键要素。本文将深入探讨低代码与数智制造的内涵…

鸿蒙实战开发:【分布式软总线组件】

简介 现实中多设备间通信方式多种多样(WIFI、蓝牙等)&#xff0c;不同的通信方式使用差异大&#xff0c;导致通信问题多&#xff1b;同时还面临设备间通信链路的融合共享和冲突无法处理等挑战。分布式软总线实现近场设备间统一的分布式通信管理能力&#xff0c;提供不区分链路…

音频占用磁盘空间太多 需要把mp3音频转aac音频缩小占用空间 应该怎么操作?

一&#xff1a;什么是aac格式&#xff1f; aac是一种音频压缩格式&#xff0c;它是MPEG-2标准下的一种音频压缩方式&#xff0c;也可以作为HE-AAC&#xff0c;AAC或AAC-LC格式使用&#xff0c;是音频压缩领域中的一种重要格式。与MP3的比较&#xff0c;aac在保证音质的同时可以…

K8S CNI

OCI概念 OCI&#xff0c;Open Container Initiative&#xff0c;开放容器标准&#xff0c;是一个轻量级&#xff0c;开放的治理结构&#xff08;项目&#xff09;&#xff0c;在 Linux 基金会的支持下成立&#xff0c;致力于围绕容器格式和运行时创建开放的行业标准。 OCI 项目…

零基础入门多媒体音频(2)-音频焦点

说明&#xff1a;非全职写手&#xff0c;整个系列内容的顺序可能不是循序渐进&#xff0c;后期考虑调整。目前优先编写熟练度高以及最近工作中用到的的技术。 在音频领域的开发中&#xff0c;音频焦点是个很重要的概念。在面试中也是个高频话题。通过音频焦点的引入&#xff0…

stm32-定时器输入捕获

目录 一、输入捕获简介 二、输入捕获框图 1.定时器总框图 2.输入捕获框图 3.主从触发模式 三、固件库实现 1.定时器测量PWM频率 2.PWMI模式 一、输入捕获简介 二、输入捕获框图 1.定时器总框图 上图可知&#xff0c;四个输入捕获和输出比较共用4个CCR寄存器&#x…

Android SystemServer进程解析

SystemServer进程在android系统中占了举足轻重的地位&#xff0c;系统的所有服务和SystemUI都是由它启动。 一、SystemServer进程主函数流程 1、主函数三部曲 //frameworks/base/services/java/com/android/server/SystemServer.java /** * The main entry point from zy…

element ui el-select组件添加选项下拉加载

需求描述&#xff1a;在做搜索的时候由于有一个下拉列表接口返回数据特别多所以对列表进行了一个下拉触底加载的事件&#xff0c;但是官方文档是没有对应的api的所以自己使用指令写了一个方法。 实现代码&#xff1a; <el-selectv-model"sellerNameSearchVal"v-s…

维修SedoTreepoint染色机电脑Sedomat 1800+ 5500触摸屏控制器

染厂控制器 染厂机械触摸屏控制器 Sedomat 1808 Sedomat 1808 提供 7 英​​寸用户友好型触摸屏显示屏&#xff0c;防水等级为 IP67。它保证了恶劣环境下的高质量和可靠性。RFID阅读器提供了数据采集的可能性。内部I/O可配置以满足纱线、织物和其他类型染整机的要求。 除了这些…

代码之外的功夫:程序员精进之路 -- 阅读笔记及总结

第一章 设计原型 Ross自己也不是很明确自己的需求。——好家伙&#xff0c;太真实了。客户不能明确清晰地传递自己的需求&#xff0c;客户可能只有一个大概的目标。这时候&#xff0c;该怎么办&#xff1f; 这时候可以和客户沟通&#xff0c;先出一个草图&#xff08;线框图&…

安卓UI面试题 26-30

26. Window和DecorView是什么?DecorView又是如何和Window建立联系的?Window是 WindowManager 最顶层的视图,它负责背景(窗口背景)、Title之类的标准的UI元素, Window是一个抽 象类,整个Android系统中, PhoneWindow是 Window的唯一实现类。 至于 DecorView,它是一个顶级 …

vue+elementUI实现指定列的单元格可编辑

template中的代码如下&#xff1a; <div v-if"(item.label 高压侧 || item.label 低压侧)&&coloumnHeader.label 单柱片数"><div class"editableCell"><div v-if"item.label 高压侧" dblclick"changeValue(sco…

人工智能程序使用的编程语言

用C语言可以写人工智能程序吗&#xff1f; 可以用C语言编写具有人工智能功能的程序&#xff0c;但是较为复杂。C语言是一种通用的编程语言&#xff0c;它在执行速度和资源控制方面表现出色&#xff0c;这使得它适合于需要高性能处理的人工智能应用&#xff0c;如游戏AI&#xf…

邮件安全|“AI钓鱼邮件”愈发泛滥,钓鱼邮件如何防“钓”?

毋庸置疑&#xff0c;人工智能是把双刃剑。 在AI蓬勃发展的过程中&#xff0c;潜在的风险正在悄然滋长。 近日&#xff0c;网络安全公司Enea发布的一份报告指出&#xff0c;随着以人工智能驱动的语音钓鱼&#xff08;vishing&#xff09;和短信钓鱼&#xff08;smishing&…