如何在Google Chrome/Python中获取API请求头?以NBA接口为例
请求头获取指南:以NBA Stats API为例
一、教程中请求头的来源
教程里的HEADERS字典是模拟真实浏览器访问stats.nba.com时发送的请求头。这类网站会通过检查请求头判断访问来源,拒绝非浏览器的请求(比如直接用requests发起的无标识请求)。其中几个关键字段是:
User-Agent:标识浏览器类型和版本,让服务器认为你是正常用户x-nba-stats-origin、x-nba-stats-token:NBA API特有的验证字段,必须包含才能返回数据Referer:表明请求的来源页面,防止跨域非法请求
二、如何从Chrome开发者工具复制请求头
你看到的请求头和教程不同是正常的(浏览器版本、会话状态不同都会导致差异),复制方法如下:
- 打开Chrome开发者工具(快捷键F12或Ctrl+Shift+I),切换到Network标签
- 刷新页面或触发你需要的API请求(比如在stats.nba.com查看球员数据)
- 在Network列表中找到目标API请求(比如你代码里的
leaguedashplayerstats),点击它 - 切换到Headers标签,向下滚动找到Request Headers区域
- 复制请求头的两种方式:
- 手动复制:逐个记录
Key和Value,整理成Python字典 - 批量转换:右键点击Request Headers区域,选择「Copy」→「Copy as cURL (bash)」,然后把复制的cURL命令里的
-H "Key: Value"部分提取出来,转换成Python字典格式(比如-H "User-Agent: xxx"对应'User-Agent': 'xxx')
- 手动复制:逐个记录
三、requests能否自动获取请求头?
不行。requests本身不会自动抓取浏览器的请求头,因为每个网站要求的请求头都不一样,必须手动从开发者工具中捕获。不过你可以预设一些通用的浏览器请求头(比如User-Agent),但像NBA API这类有特殊验证字段的,必须从真实请求中提取。
四、通用网站请求头获取步骤
不管爬取哪个网站,获取正确请求头的流程都是:
- 用浏览器打开目标网站,触发你需要的API请求
- 通过开发者工具Network标签找到该请求
- 复制并整理请求头为Python字典
- 将字典传入
requests的headers参数发起请求
注意:部分网站的请求头包含会话相关字段(比如Cookie),这类字段可能会过期,需要定期更新。
内容的提问来源于stack exchange,提问作者bismo
相关产品推荐
相关产品推荐

