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

如何抓取Kayak-Polo网站中动态生成的赛事表格数据?

抓取DataTables动态加载的赛事表格数据方案

针对你遇到的DataTables动态生成表格无法直接抓取的问题,按以下步骤操作即可获取数据:

  • 抓包复刻请求参数
    打开浏览器开发者工具(F12)的Network面板,筛选「XHR/fetch」类型,找到加载表格数据的POST请求(通常请求URL和页面URL一致)。复制以下内容:

    • 请求Headers:重点保留Cookie、X-Requested-With、Referer、Content-Type这些字段,它们是网站验证请求合法性的关键
    • Form Data参数:DataTables的服务器端请求会包含固定格式参数(如draw、start、length),还有网站自定义的筛选参数(比如你页面里的lang=en、Saison=2022、Group=CM等),全部复制下来
  • 模拟POST请求获取数据
    用Python的requests库构造请求,把刚才复制的Headers和Form Data填进去,示例代码如下:

    import requests
    
    url = "https://www.kayak-polo.info/kpmatchs.php"
    headers = {
        "Cookie": "你的Cookie内容",
        "X-Requested-With": "XMLHttpRequest",
        "Referer": "https://www.kayak-polo.info/kpmatchs.php?lang=en&event=0&Saison=2022&Group=CM&Compet=*&J=*&Round=*&Css=&navGroup=1",
        "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
    }
    data = {
        "draw": "1",
        "start": "0",
        "length": "10",
        "lang": "en",
        "event": "0",
        "Saison": "2022",
        "Group": "CM",
        # 补充其他复制的Form Data参数
    }
    
    response = requests.post(url, headers=headers, data=data)
    table_data = response.json()["data"]  # 表格行数据存放在data字段中
    
  • 处理分页获取全量数据
    DataTables默认分页加载,返回的JSON里有recordsTotal字段表示总数据量。你可以循环调整start参数(比如每次累加length的值),直到start超过recordsTotal,就能拿到所有页的数据。注意每次请求的draw参数要递增(第一次是1,第二次是2,以此类推)。

  • 解析整理数据
    返回的data数组里每个元素对应表格的一行,你可以根据页面表格的表头,把数组元素映射成结构化数据,最终导出成CSV或Excel文件。

内容的提问来源于stack exchange,提问作者Jesper van Beemdelust

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 22:10:34