当前位置:首页 > AI技术 > 正文内容

爬虫怎么处理登录后的动态数据 利Session保持授权令牌案例|Duuu笔记

admin3天前AI技术8

面向高级开发者的Python指南,涵盖

登录后401/403需依次检查:登录接口是否真成功(200+success标识)、Cookie是否写入、CSRF Token是否携带、JS渲染数据是否绕过、Cookie是否过期或绑定校验。

登录后请求 401 或 403?检查

Session

是否真的带上了 Cookie

很多同学用

requests.Session()

登录后,直接拿它去请求目标页面,结果返回 401 或 403 —— 表面看代码没错,其实是登录接口根本没成功,或者登录成功了但响应里没写入 Cookie。

先确认登录接口是否真返回了

200

,且响应体里有类似

"success": true

这种标识,别只看状态码就以为登录成了

调用

session.post()

后立刻打印

session.cookies

,看有没有新增类似

sessionid

token

auth_token

的键值

有些网站用前端 JS 动态设置 Cookie(比如通过

document.cookie

),这种

requests

根本捕获不到,得换方案

登录成功但动态接口返回空数据?可能是 CSRF Token 没传或过期

尤其在 Django、Flask 或 Spring Security 体系下,登录后发 POST/PUT 请求常被拦截,错误不一定是 401,而是 403 或直接返回空 JSON —— 很大概率是缺了

X-CSRFToken

CSRF-Token

请求头。

先从登录成功后的 HTML 页面源码里搜

csrf_token

csrfmiddlewaretoken

,或看响应头里有没有

X-CSRFToken

把拿到的 token 值塞进下个请求的 headers:

{"X-CSRFToken": "xxx"}

,注意大小写和 header 名要跟服务端要求一致

有些站点 token 一次一换,比如每次 GET 页面都会刷新,那就不能缓存 token,得每次从响应中重新提取

Session

仍拿不到动态渲染内容?说明数据压根不是服务端吐的

如果目标数据是靠 JS 执行后才插入 DOM(比如 Vue 渲染的列表、React 的 useEffect 请求),那

requests.Session()

再怎么保持会话也白搭——它不执行 JS,看不到最终结果。

打开浏览器开发者工具,切到 Network 面板,手动登录后点触发数据加载的按钮,找那个返回 JSON 的 XHR/Fetch 请求,这才是真实数据入口

复制该请求的完整 cURL,用

curlconverter

转成 Python 代码,重点看它用了哪些 headers(比如

Referer

X-Requested-With

)和 cookies

别盲目模仿浏览器所有 headers,但

User-Agent

Accept

Referer

这三个经常是反爬校验点,漏一个就可能被拒

登录态突然失效?留意

Expires

HttpOnly

Cookie 属性

Session

对象会自动管理 Cookie,但它不会主动刷新过期时间。如果登录态几小时后失效,大概率是服务端下发的 Cookie 带了

Expires

Max-Age

,而你的脚本没做续期。

Action Figure AI

借助Action Figure AI的先进技术,瞬间将照片转化为定制动作人偶。

下载

Python免费学习笔记(深入)

”;

session.cookies

查看关键 Cookie 的

expires

字段,确认是否已过期;

HttpOnly

的 Cookie 无法被 JS 读取,但

requests

能正常发送,不用额外处理

如果接口提供

/api/refresh

或类似心跳接口,定期调用它,让服务端延长 Cookie 有效期

别把整个

session.cookies

序列化后长期保存再反序列化复用——部分站点会对 Cookie 做绑定校验(比如绑定 IP 或 UA),换环境就失效

真正麻烦的从来不是“怎么保持登录”,而是搞清这个登录态到底依赖哪些隐式条件:是 Cookie、Header、时间戳、还是某个前端生成的签名。漏掉任意一个,

Session

就只是个空壳。

相关文章

【深度学习】Java DL4J 2024年度技术总结

一、Java DL4J深度学习概述 1.1 DL4J框架简介 1.2 与其他深度学习框架的比较 1.3 DL4J 的优势 1.3.1 与 Java 生态系统的无...

跨平台机器学习:ML.NET架构及应用编程

平台上的一个机器学习框架,它提供了一套丰富的算法和工具,使得开发人员可以轻松地构建和部署机器学习模型。支持多种编程语言,包括等,这使得它成为跨平台机器学习的理想选择。的架构主要包括三个部分:数据读取、...

一文讲清神经网络、BP神经网络、深度学习的关系

人工神经网络中的顶级代表。往往说《神经网络》就是指《BP神经网络》。 大家研究着各种神经网络,研究得不亦乐乎, 来了两个家伙Romelhart 和Mcclelland,...

AI核心技巧:如何重置openclaw硬件设置 openclaw恢复出厂设置操作方法【操作】深度解析|Duuu笔记

重置 OpenClaw 配置有四种方法:一、交互式向导重置(openclaw onboard --reset);二、指定作用域的命令行重置(如--reset-scope config);三、手动删除~...

AI高级应用:Perplexity 怎么写用户手册 Perplexity 产品帮助文档生成【技术】实战案例|Duuu笔记

Perplexity AI用户手册需基于API元数据、真实UI截图、典型场景示例、响应字段解析及动态调试指令五步构建:一调用API获取参数与错误码;二标注网页端搜索框、引用图标等组件;三设计信息检索、...

前端开发高级应用:骡子快跑支持日程安排吗 骡子快跑时间管理助手用法实战案例|Duuu笔记

骡子快跑具备日程安排能力,可通过计算机模式构建长效日程代理、自然语言注入日历事件、绑定外部日历实现双向同步三种方式实现。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 Dee...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。