You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

网页爬取难题:无法通过Chrome DevTools网络面板找到目标数据接口

爬取动态加载榜单数据的实操指引

一、精准定位动态数据接口(解决请求过多无从下手的问题)

针对你提到的两个页面,用Chrome DevTools按以下步骤筛选:

  • 打开目标页面后按F12调出DevTools,切换到Network面板
  • 点击面板左上角的垃圾桶图标清空所有现有请求,然后刷新页面
  • 在顶部过滤栏输入关键词缩小范围:
    • 对energy.de的榜单,尝试hot30、chart、track这类关键词
    • 对苹果音乐的榜单,直接用播放列表ID9b672a18307c4cd7ba1ece0106891868作为关键词
  • 重点查看XHR或Fetch类型的请求,动态加载的数据基本通过这类接口返回
  • 点击每个候选请求,切换到Response标签,检查是否包含歌曲名、歌手等目标数据

二、替代方案:直接请求接口(比Requests HTML更高效)

找到接口后,无需用Requests HTML渲染页面,直接用requests库请求接口解析JSON即可,示例代码如下:

import requests

# 替换为你找到的实际接口URL
api_url = "目标接口地址"
# 模拟浏览器请求头,避免被拦截
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36",
    "Referer": "原页面URL"
}

response = requests.get(api_url, headers=headers)
# 解析JSON数据
chart_data = response.json()

# 遍历提取榜单信息(根据实际接口返回结构调整)
for idx, track in enumerate(chart_data.get("tracks", []), 1):
    song_name = track.get("name")
    artist_name = track.get("artist", {}).get("name")
    print(f"{idx}. {song_name} - {artist_name}")

三、注意事项

  • 部分接口需要携带特定请求头(如Referer、Accept),可从DevTools的Headers标签复制浏览器的请求头
  • 如果接口返回分页数据,需检查URL中的分页参数(如page、offset),循环请求获取完整榜单
  • 若遇到接口返回403/404,可尝试更换User-Agent或添加Cookie(从浏览器复制当前页面的Cookie)

内容的提问来源于stack exchange,提问作者Chaos Klaus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 02:19:50