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

如何查找并解码OddsPortal实时赔率URL中的secondary_id_code

解决OddsPortal单场实时赔率爬取中的secondary_id_code获取问题

我正在开发OddsPortal足球实时赛事赔率爬取项目,已通过以下代码获取实时赛事列表feed:

import requests

url = "https://www.oddsportal.com/feed/livegames/liveOdds/0/0.dat?_="
response = requests.get(url)
data = response.text

但单场赔率feed的URL结构为https://fb.oddsportal.com/feed/match/1-1-{match_id_code}-1-2-{secondary_id_code}.dat,其中match_id_code可从赛事列表feed中获取,secondary_id_code是类似%79%6a%39%64%39的URL编码字符串,无法从现有feed或单场页面HTML中找到,以下是获取并解码该字符串的可行方案:

1. 排查页面加载的JS资源

  • 打开实时赛事页面,使用浏览器开发者工具(F12)切换到Network面板,筛选JS类型资源
  • 在资源内容中搜索赛事ID(如AsILkjnd)或URL编码特征字符串,这类参数常被存放在全局配置变量中(如window对象下的属性)

2. 解析页面内嵌脚本

  • 查看页面HTML中的<script>标签,重点关注包含match、feed、id关键词的脚本块
  • 示例:若脚本中存在window.matchParams = { secondary: "yjbd1" }这类代码,直接提取对应值即可

3. 监控赛事详情页的AJAX请求

  • 点击单场赛事进入详情页,在Network面板监控所有请求,查看是否有接口返回包含secondary_id_code的配置数据
  • 部分网站会在进入赛事页时先请求一个初始化接口,返回后续赔率feed所需的参数

4. URL编码字符串解码验证

拿到疑似编码字符串后,用Python解码:

from urllib.parse import unquote

encoded_str = "%79%6a%39%64%39"
decoded_str = unquote(encoded_str)
print(decoded_str)  # 输出: yj9d9

注意事项

  • OddsPortal有反爬机制,请求时需携带合法的User-Agent、Cookie,必要时使用代理IP避免被封禁
  • 若参数由JS动态生成,可使用Selenium或Playwright模拟浏览器渲染环境,执行JS后提取参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 20:58:19