Python爬虫:Python+WebSocket获取体育实时赛事数据

Python爬虫:Python+WebSocket获取体育实时赛事数据

苦于websocket的能跑的案例太少了,还没开始就要什么逆向,一来就是拦路虎,太折磨人了,无意间看了一个类似的文章并学习更新了,感谢大佬,对websocket有了一个新的认识。
python版本:在这里插入图片描述

目标网站:http://m.611.com/

1、打开开发者工具(Ctrl+Shift+I)启用浏览器仿真器
在这里插入图片描述
2、触摸启用仿真

将鼠标移到设备上可查看圆形“触摸”光标。这将对基于触摸的 JavaScript 事件( 如touchstart,touchmove和touchend)做出反应。鼠标特定的事件和 CSS 效果不会 做出反应。
按住Shift键,然后单击并移动鼠标以模拟双指缩放操作。
通过观察数据一段时间会变~
在这里插入图片描述
没发现比分是怎么和球队怎么拼接而成,疑惑~
通过查看发现是基于websockt实时更新数据,接下来开始分析:
在这里插入图片描述
3、参数分析:
{“command”:“RegisterInfo”,“action”:“Web”,“ids”:[],“UserInfo”:{“Version”:“[1667099935000]{“webkit”:true,“version”:“605.1.15”,“safari”:true}”,“Url”:“http://m.611.com/”}}
{“command”:“JoinGroup”,“action”:“SoccerLive”,“ids”:[303794138,303747120,303794153,303748872,303747117,303749323,303755706,303747122,303755264,303794150,303794144,303747115]}
{“command”:“JoinGroup”,“action”:“BasketSoccerLive”,“ids”:[303683091,303683092,303674542,303674543,303674544,303674545,303674546,303683093,303683094,303683096,303683097,303683098]}
通过多次刷新页面/更换浏览器得出结论:
第一条内容是连接服务器用的,action、ids、Url都是不变的,只有UserInfo里面内容是变化的,其中Version中括号里面是一个时间戳+000,后面加浏览器参数,那么只需要更改时间戳就可以了,浏览器参数直接复制就行。
第二、三条内容是加入群组用的,参数都是固定的,不需要改。

4、分析完发送的内容,后面就容易了,只需要再得到url就可以尝试连接了,返回headers界面,发现url后面加了一段字符串参数,字符串每次刷新后都不同,应该是js加密生成的,找js文件逆向太麻烦,先看看前面的请求有没有这个参数;
在这里插入图片描述
直接复制f3fa2472b9db40f89bcf82c32e2357e6
ctrl+f搜索:
在这里插入图片描述在这里插入图片描述
发现这样GET不就可以了,太喜欢这样了,对刚开始学爬虫的小白我才能学的起走……

pip install websocket-client
开始写代码:

import requests

def get_token():
    # 获取token
    token_url = 'http://m.611.com/Live/GetToken'
    headers = {
   
        'Accept': '*/*',
        'Accept-Language': 'zh-CN,zh;q=0.9',
        'Connection': 'keep-alive',
        'Referer': 'http://m.611.com/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36',
        'X-Requested-With': 'XMLHttpRequest'
    }
    return requests.get(token_url, headers
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值