如何通过Nordnet API获取资产价格?无需Webdriver获取SHAREVILLE Cookie
问题背景
- 目标:向
https://www.nordnet.fi/api/2/instruments/price/16256554发送GET请求,获取资产ID为16256554的价格数据 - 预期返回数据:
ask: 776.5 ask_volume: 387142 bid: 776.5 bid_volume: 385982 close: 770 delay: 0 high: 784 instrument_id: 16256554 last: 776.5 last_volume: 4863 lot_size: 1 low: 772.3 open: 778.7 tick_timestamp: 1660576800019 trade_timestamp: 1660576800018 turnover: 959405065.4 turnover_volume: 1234170 vwap: 777.4 - 实际返回错误:
{"code": "NEXT_INVALID_SESSION"} - 排查结论:请求必须携带请求头
Cookie: SHAREVILLE=0915f43e60162f92dea7f7c7813422148e7xxxxx
核心问题
如何在不使用Webdriver的前提下获取有效的SHAREVILLE Cookie?
可行解决方案
1. 用HTTP库模拟初始会话请求
SHAREVILLE Cookie是站点初始化会话时设置的基础Cookie,无需登录即可获取。以Python的requests库为例:
import requests # 初始化会话,自动保存Cookie session = requests.Session() # 访问Nordnet首页触发Cookie设置,可添加User-Agent模拟浏览器 session.get("https://www.nordnet.fi/", headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" }) # 提取SHAREVILLE Cookie值 shareville_cookie = session.cookies.get("SHAREVILLE") # 直接用会话请求价格API price_response = session.get("https://www.nordnet.fi/api/2/instruments/price/16256554") print(price_response.text)
2. 抓包定位专门的会话初始化接口
打开浏览器开发者工具(F12)的「网络」面板,清空缓存后访问Nordnet首页,查看所有请求的响应头Set-Cookie字段,找到返回SHAREVILLE的接口(通常是站点根路径或/api/2/session类的接口),直接请求该接口即可获取Cookie,无需加载整个页面。
3. 用curl命令行工具获取
适合快速测试或脚本集成:
# 发起请求并将Cookie保存到本地文件 curl -c nordnet_cookies.txt https://www.nordnet.fi/ -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" # 提取SHAREVILLE Cookie值 grep SHAREVILLE nordnet_cookies.txt | awk '{print $7}'
获取到Cookie后,携带它请求价格API:
curl https://www.nordnet.fi/api/2/instruments/price/16256554 -b "SHAREVILLE=你的Cookie值"
注意事项
SHAREVILLECookie有有效期,需定期重新获取- 部分场景下需携带
User-Agent等请求头,避免被站点识别为非浏览器请求拦截 - 若站点有反爬机制,可能需要额外处理,但该Cookie属于基础会话标识,一般无需登录或人机验证即可获取
内容的提问来源于stack exchange,提问作者aipz
相关产品推荐
相关产品推荐

