| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python实现NBA文字直播间 -> 正文阅读 |
|
[Python知识库]Python实现NBA文字直播间 |
上班想看比赛?害怕被老大发现?心痒痒?Python写一个NBA文字直播间,上班放心摸鱼看比赛。该文字直播间的实现原理其实就是爬虫,期间需要通过抓包分析某网站的文字直播请求过程,把每个请求过程用爬虫来实现。不废话,直接上代码。 # -*- coding:utf-8 -*- import time import requests class WordSpace(object): ? ? def __init__(self): ? ? ? ? # header ? ? ? ? self.headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",} ? ? ? ? # 当前时间 ? ? ? ? self.sdate = time.strftime('%Y-%m-%d',time.localtime(time.time())) ? ? ? ? # 保存比赛ID的列表 ? ? ? ? self.bsidList = [] ? ? def getBsInfo(self): ? ? ? ? # 获取所有比赛 ? ? ? ? url = "https://bifen4pc.qiumibao.com/json/list.htm" ? ? ? ? response = requests.get(url, headers=self.headers) ? ? ? ? for bsinfo in response.json()["list"]: ? ? ? ? ? ? if bsinfo["type"] == "basketball": ? ? ? ? ? ? ? ? self.bsidList.append(bsinfo["id"]) ? ? ? ? ? ? ? ? print (bsinfo["id"], bsinfo["home_team"], bsinfo["home_score"], "-", bsinfo["visit_score"], bsinfo["visit_team"], bsinfo["period_cn"].replace('\n', ' ')) ? ? ? ? return self.bsidList ? ? ? ? def getBfInfo(self, bsid): ? ? ? ? # 进入一场比赛并查询比分 ? ? ? ? url = "https://bifen4pc2.qiumibao.com/json/"+ self.sdate +"/"+ bsid +".htm" ? ? ? ? response = requests.get(url, headers=self.headers) ? ? ? ? print (response.json()["home_team"], response.json()["home_score"], "-", response.json()["visit_score"], response.json()["visit_team"], response.json()["period_cn"]) ? ? ? ? print ("***************************************") ? ? ? ? return response.json() ? ? def getZbInfo(self, bsid, bfinfo): ? ? ? ? # 循环获取新直播ID ? ? ? ? zbid = 0 ? ? ? ? while True: ? ? ? ? ? ? url = "https://dingshi4pc.qiumibao.com/livetext/data/cache/max_sid/"+ bsid +"/0.htm" ? ? ? ? ? ? response = requests.get(url, headers=self.headers) ? ? ? ? ? ? if response.json() and response.json() > zbid: ? ? ? ? ? ? ? ? zbid = response.json() ? ? ? ? ? ? ? ? # 如果有则获取直播内容 ? ? ? ? ? ? ? ? url = "https://dingshi4pc.qiumibao.com/livetext/data/cache/livetext/"+ bsid +"/0/lit_page_2/"+ str(zbid) +".htm" ? ? ? ? ? ? ? ? response = requests.get(url, headers=self.headers) ? ? ? ? ? ? ? ? if response.status_code == 200: ? ? ? ? ? ? ? ? ? ? for zbinfo in response.json(): ? ? ? ? ? ? ? ? ? ? ? ? print (bfinfo["home_team"], zbinfo["home_score"], "-", zbinfo["visit_score"], bfinfo["visit_team"]) ? ? ? ? ? ? ? ? ? ? ? ? print (zbinfo["live_text"]) ? ? ? ? ? ? ? ? ? ? ? ? if zbinfo["img_url"]: ? ? ? ? ? ? ? ? ? ? ? ? ? ? print (zbinfo["img_url"]) ? ? ? ? ? ? ? ? ? ? ? ? print ("***************************************") def main(): ? ? mySpace = WordSpace() ? ? if mySpace.getBsInfo(): ? ? ? ? while True: ? ? ? ? ? ? bsid = input("请输入比赛ID:") ? ? ? ? ? ? if bsid in mySpace.bsidList: ? ? ? ? ? ? ? ? bfInfo = mySpace.getBfInfo(bsid) ? ? ? ? ? ? ? ? mySpace.getZbInfo(bsid, bfInfo) ? ? ? ? ? ? elif bsid == "exit": ? ? ? ? ? ? ? ? break ? ? ? ? ? ? else: ? ? ? ? ? ? ? ? print ("比赛ID错误,请重新输入!输入exit可退出!") ? ? else: ? ? ? ? print ("暂无比赛") ? ? ? ? time.sleep(5) if __name__ == '__main__': ? ? main() |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 5:38:39- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |