Python中如何获取球探网足球数据分析页面的URL并实现数据爬取

球探网上面进入某场 比赛的数据分析页面 其标签是这样的<a href=“javascript:” onclick=“analysis(1424203)” title=“数据分析”>析</a>


onclick 点击触发 打开新标签


chrome 是如何获取这个地止的啊 抓包看了半天 没明白 求大神指导
想获取点数据作分析
Python中如何获取球探网足球数据分析页面的URL并实现数据爬取

24 回复

哈哈哈!这个我做过😄


要爬取球探网这类网站的数据,你得先搞定URL获取和反爬机制。球探网通常采用动态加载,直接看网页源码是找不到数据的。

核心思路:

  1. 用浏览器开发者工具(F12)的Network面板监控XHR/Fetch请求
  2. 找到真正的数据接口URL(通常是JSON格式)
  3. 模拟请求头,特别是User-AgentReferer
  4. 处理可能的参数加密或签名

示例代码:

import requests
import json
from datetime import datetime

def fetch_zqtan_data():
    # 球探网数据接口示例(实际URL需要从Network面板获取)
    url = "https://api.zqtan.com/match/list"
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
        'Referer': 'https://www.zqtan.com/',
        'Accept': 'application/json, text/plain, */*'
    }
    
    params = {
        'date': datetime.now().strftime('%Y-%m-%d'),
        'page': 1,
        'size': 20
    }
    
    try:
        response = requests.get(url, headers=headers, params=params, timeout=10)
        response.raise_for_status()
        
        # 解析JSON数据
        data = response.json()
        
        # 提取比赛信息
        matches = data.get('data', [])
        for match in matches:
            print(f"比赛: {match.get('home_team')} vs {match.get('away_team')}")
            print(f"时间: {match.get('match_time')}")
            print(f"联赛: {match.get('league_name')}")
            print("-" * 40)
            
        return data
        
    except requests.exceptions.RequestException as e:
        print(f"请求失败: {e}")
        return None

if __name__ == "__main__":
    fetch_zqtan_data()

关键点:

  • 实际接口URL需要你自己在Network面板里找,看哪个请求返回了JSON数据
  • 注意请求参数可能包含时间戳、签名等加密字段
  • 如果遇到反爬,可能需要添加更多请求头字段(如Accept-EncodingConnection
  • 考虑使用time.sleep()避免请求过快

建议:先手动分析接口再写爬虫。

‘network’ 标签里不是有 url 吗

大神 有经验传授吗 给跪了
没有的

Network 里勾选 Preeserve log

analysis 明显是个函数,直接追到处理结果进行组合,或者

大神 这个我肯定知道啊 但是弹出的新标签 所有包我都 看过了。没有一个是接收地止的。原页面就完全没有动静 不明白是啥意思 我估计要去学 JS 了

直接上 phontomjs

亲哥 我的设想是 百台机器分布式抓取啊 用模拟点击 不合适吧

新弹出的页面 F12 的 network 你当然看不到记录,因为 network 只有开着 F12 期间的请求才记录,你开 F12 时请求已经发出去了,你 F5 一下就能看到了。看你需求是想批量抓页面,那就在你自己的脚本里用它那个 analysis 函数把 url 算出来呗,不是 a 标签没法直接获取链接。

我感觉 楼歪了 我的本意是 这个是 ONCLICK 触发的连接 在初始页 无法找到连接去不了下一页 好多人都 说用模拟点击 可是 数据量巨大 要分布 要多线程 没研究过是不是合适 还是希望能获取去目标页面的连接 谢谢大家啦

把你的请求地址给一下吧。我之前是爬场次赔率,根据编号拼接出数据地址,再进行数据清洗。

那个 onclick 确实没法解析出数据地址的。

地址是在这个 analysis 函数里拼接出来的,没有经过网络请求。把它的逻辑看懂,不就知道要打开的地址了吗?

拿到 ID 去采集详情页…以前公司买的球探的数据 就是有点小贵

这个函数看不懂吗? 就是字符串拼接一下,http://zq.win007.com/analysis/1424203cn.htm ? 对吧。把这个 js 代码改造成 python 代码。

这是一个完美的弄不清楚「我想要什么」的案例。
想要的东西其实已经有人给出,然而自己却还在纠结一些其他的东西。

题外不得不感叹一下,多年前的比赛 ID 还是 5 位 6 位的,没想到现在都已经 140W 的 7 位了。

我去看了,实际情况要比看上去的复杂。页面上这些 id 不是直接写在 HTML 元素里的,也是通过脚本动态加载的。但是在浏览器检查元素的时候看的的是已经加载完了之后的样子,而爬虫看到的是空白的页面。所以需要顺藤摸瓜去找那个动态加载的 api。

有点意思,学习了

phantom 不是可以加载页面及 js 吗?全部加载完了再自己用 js 拼一下就出来了

PS:不学习 js 是很难做网页抓取的

找这个网站拿数据我醉了。。。不专业。。。
你的技术至少包含 libpcap 关键字才能拿到最接近第一时间的数据。。。
如果你的数据来自于中文网站已经不专业了

如果无法解析地止 那只有构造 URL 了 这个有点烦人啊 他要是改了服务器 我要是没有发现 就会造成损失啦

我并不是要实时的数据啊 我是通过 几个时段的数据来使用我自己写的业务逻辑来分析 那些比赛是我需要的。

懂啊 我是想避免拼接来构造 URL 啊 这样很不妥啊 负面的影响太多了

回到顶部