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

网页爬取问题:curl命令输出与浏览器输出不一致?

用curl获取TikTok接口JSON数据的问题解决

问题根源

TikTok的接口做了反爬校验,直接用curl发起请求会被判定为非浏览器访问,所以返回空的videoData和shareUser。

可行的解决步骤

  1. 复制浏览器的完整请求头
    浏览器访问接口时会携带一堆标识信息,User-Agent、Cookie、Referer是关键。打开浏览器开发者工具(F12),找到该接口的请求,复制所有请求头,加到curl命令里。
    示例命令:

    curl 'https://www.tiktok.com/node/share/video/@tiktok/7156280167344688426' \
    -H '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' \
    -H 'Cookie: 替换成你浏览器请求里的Cookie值' \
    -H 'Referer: https://www.tiktok.com/@tiktok/video/7156280167344688426'
    

    注意:Cookie有有效期,过期后得重新从浏览器复制。

  2. 检查动态签名参数
    TikTok部分接口需要_signature这类动态生成的签名参数,你可以在浏览器的请求URL里找到这个参数,把它加到curl的URL后面,比如:

    curl 'https://www.tiktok.com/node/share/video/@tiktok/7156280167344688426?_signature=xxx'
    

    这个签名是TikTok根据请求生成的,每次请求可能不一样,得实时从浏览器复制。

  3. 模拟浏览器会话流程
    先请求TikTok主页获取初始Cookie,再用这个Cookie请求目标接口:

    # 先获取Cookie
    curl -c tiktok_cookie.txt 'https://www.tiktok.com'
    # 携带Cookie请求接口
    curl -b tiktok_cookie.txt 'https://www.tiktok.com/node/share/video/@tiktok/7156280167344688426' \
    -H 'User-Agent: 你的浏览器User-Agent'
    

浏览器工作细节学习资源

  • MDN Web Docs:从HTTP请求流程到页面渲染的基础知识点都有,是入门浏览器工作机制的首选。
  • 《浏览器工作原理与实践》:专门讲浏览器底层运作的书籍,覆盖网络请求、JS引擎、渲染流程等核心内容。
  • Chrome开发者工具官方指南:教你用开发者工具抓包、分析请求,是排查这类网络请求问题的实用工具教程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:15:34