如何用Python实现自动采集今日头条热搜榜_分析Ajax请求获取JSON数据

今日头条热搜榜的真实Ajax接口可通过F12打开Network→XHR,筛选含“hot”或“hotboard”的请求,典型URL为https://www.toutiao.com/hot-event/hot-board/,需携带Referer、User-Agent及有效Cookie(含tt_webid)才能成功获取JSON数据。

怎么找到今日头条热搜榜的真实Ajax接口

今日头条网页版的热搜榜数据不是直接渲染在HTML里的,而是通过前端JavaScript发起Ajax请求加载的JSON。关键是要定位到那个带hot_searchsearch_hot字样的请求——它通常出现在Network面板的XHR分类下,且响应体是标准JSON格式。

实操建议:

  • 打开 https://www.toutiao.com/hotnews/,F12 → Network → XHR,刷新页面,筛选出含 hotsearch 的请求
  • 重点关注请求URL中带 https://www.toutiao.com/hotboard/https://www.toutiao.com/api/pc/hot/ 的条目
  • 点开查看Headers里的RefererUser-Agent,这两个字段多数时候必须携带,否则返回403或空数据
  • 注意响应里是否有data字段嵌套多层,常见结构是 data.data.listdata.data

为什么用requests直接请求会返回空或报错

因为今日头条服务端做了基础反爬:校验RefererUser-Agent,还可能校验X-Requested-With(标示AJAX请求)和Cookie中的tt_webidtt_webid_ss。缺一不可,尤其tt_webid过期会导致返回{"message":"invalid param"}这类错误。

实操建议:

  • 先手动访问一次 https://www.toutiao.com/hotnews/,复制浏览器当前请求的完整Headers(尤其是Cookie整段)
  • 在Python中用requests.get(url, headers=headers, timeout=5),别漏掉timeout,避免卡死
  • 如果返回状态码是200但json().get("data")None,大概率是Cookie失效,需重新抓包更新
  • 不建议用Selenium模拟浏览器——太重,纯requests加合理headers足够稳定

如何解析返回的JSON并提取热搜标题和热度值

真实响应结构经常变,目前(2025年中)主流接口返回的是一个data数组,每个元素含titlehot_valuerank等字段,但hot_value可能是字符串或数字,且部分条目含广告标记(is_adTrue)。

橙星梦工厂

风行在线专为漫剧创作者打造的一站式创作与推广平台

下载

实操建议:

  • 先用print(json.dumps(res.json(), indent=2, ensure_ascii=False))看一眼原始结构,别硬猜
  • 安全提取用item.get("title", "")而非item["title"],防止KeyError
  • 热度值优先取item.get("hot_value"),若为空再 fallback 到item.get("score")item.get("view_count")
  • 过滤广告项:if not item.get("is_ad"),避免把“推广”类内容当真实热搜

采集频率和稳定性要注意什么

该接口没有公开限流策略,但高频请求(如间隔503 Service Temporarily Unavailable。另外,接口本身有缓存,每5–10分钟才更新一次,没必要高频刷。

实操建议:

  • 生产环境建议最低间隔设为300秒(5分钟),用time.sleep(300)控制节奏
  • 加异常兜底:捕获requests.exceptions.RequestExceptionjson.JSONDecodeError,记录日志后跳过本次
  • 不要依赖单个接口URL,留一两个备用地址(比如/api/pc/hot//hotboard/),响应失败时自动切换
  • 每次成功采集后,把timestamplen(data)写入本地文件,方便后续查是否突然归零——那是接口又改了

真正麻烦的不是写代码,而是接口字段名和嵌套层级哪天突然变了,而错误响应又不报具体原因。所以每次跑之前,先手动能否curl通,比什么都靠谱。

相关推荐:

《红色沙漠》全采集物知识解锁方法介绍

《红色沙漠》中的采集物知识是游戏里非常重要的特殊知识,而想要解锁所有采集物知识就需要一些技巧,采集物属于支线任务奖励,不会遗漏。玩家前往沙漠地区托马索附近,击杀火属性的古代自然记忆后,会获得一个宝物道具,使用后即可直接解锁所有相关采集物,基本没有难度。 红色沙漠采集物知识怎么解锁 本文内容来源于互联网,如有侵权请联系删除。

《我是城主》采集攻略

采集是新手城主前期获取基础资源的核心玩法,城池发展所需的粮草、木材、矿石,均可通过对应区域采集获得。采集所得资源用途广泛,过程中还能触发额外福利,后期解锁自动功能后更可轻松挂机收资源。 《我是城主》采集攻略 一、采集区域与对应资源 前期主要有三大采集区域,不同区域产出专属资源: · 农田:采集粮草 · 伐木场:采集木材 · 矿洞:采集矿石 以上三类是城池建设、产业发展的基础物资,也是新手阶段优先参...

我的世界附魔台如何用

首先我们先打开工作台用三个纸跟一个皮革合成书;第二步将三个书放在中间,其余放木板合成书架;第三步将书架按照如图摆放,至少摆放16个书架;第四步打开工作台,按图中顺序摆放合成附魔台;第五步将附魔台放在书架中心位置;第六步打开附魔台放入钻石剑与青金石。 详细答案: 首先我们先打开工作台用三个纸跟一个皮革合成书。 第二步将三个书放在中间,其余放木板合成书架。 第三步将书架按照如图摆放,至少摆放16个书架...

《失控进化》森林资源采集攻略

失控进化森林资源怎么采集?失控进化森林当中存在着大量丰富资源,但是在森林当中的资源采集过程着实有些复杂,让不少萌新玩家十分挠头,那么本期小编就带领大家完成森林内的探索攻略和资源采集攻略,手把手详细教学让你也能成为资源大佬,如果在资源方面,你也是“囊中羞涩”,那么本期有关森林资源采集攻略的内容一定要认真学习哦,让你快速成为资源大佬! 《失控进化》森林资源采集攻略 很多玩家的出生地就是森林,一睁眼便发...

如何用Kimi实现自动化邮件订阅推送_利用Kimi联网整理

Kimi可自动抓取网页更新并生成邮件内容:先确认联网功能开启,再用精准指令提取最新信息,复制结果粘贴至邮箱发送,配合书签和模板实现每日2分钟闭环。 你需要定期获取某网站更新内容并自动发邮件通知自己,但手动刷新、复制、粘贴太耗时。kimi的联网搜索+长文本理解能力可以替代人工完成信息抓取、摘要生成和邮件内容组织,整个流程无需编程基础。 确认Kimi当前支持联网功能 打开Kimi官网或App,登录账号...

如何用千问批量处理文本分类任务?

可实现非结构化文本批量语义分类的五种技术路径:一、调用千问API批量处理;二、Qwen3-Embedding+本地分类器联合建模;三、OpenClaw规则驱动流水线;四、千问APP表格Agent端侧处理;五、Qwen3-Reranker联合排序与分类。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 如果您希望将大量非结构化文本(如用户反馈、...

如何用Kimi快速整理个人年度税务记录_通过Kimi文件分析

Kimi可自动解析多格式税务文件并按税法六类所得分类汇总。上传个税PDF、Excel流水、微信截图后,发送指令即可生成结构化表格;支持实时修正、交叉验证及生成申报表/PDF,全程留痕可溯。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 你需要在月底前把零散的银行流水、支付宝账单、微信支付记录和个税APP导出的纳税记录全部归总成一份清晰的年度...
· AI · 259109

如何用Kimi联动企业微信推送关键信息_利用Kimi自动化流程

Kimi可自动推送结果至企业微信:需创建API模式长连接机器人获取Bot ID和Secret,安装并配置企微插件,在Kimi Claw中填入凭证后完成双向配对。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜ 你需要让Kimi在完成特定任务后,自动把结果推送到企业微信内部群或成员私聊,避免人工复制粘贴、漏发、延迟——这要求Kimi与企业微信建...
· AI · 87406