Python利用PyQt5制作一个获取网络实时数据NBA数据播报GUI

现在NBA联赛也进行到半决赛了,我们怎么样才能以更快的方法获取NBA的数据呢?这里我们就自己来做一个数据播报的程序

制作NBA数据爬虫

捋顺思路

我们在这里选择的是百度体育带来的数据,我们在百度当中直接搜索NBA跳转到网页,我们可以看到,百度已经为我们提供了相关的数据
在这里插入图片描述
我们点击进去后,可以发现这是一个非常简洁的网址
在这里插入图片描述
我们看一下这个地址栏,发现毫无规律https://tiyu.baidu.com/live/detail/576O5Zu955S35a2Q6IGM5Lia56%2Bu55CD6IGU6LWbI2Jhc2tldGJhbGwjMjAyMS0wNi0xMyPniLXlo6t2c%2BWspritq%2BiIuQ%3D%3D/from/baidu_aladdin
在这里插入图片描述
好吧,只能再找找了,我们点击整个标签发现,这是一个网址,那就容易多了。
在这里插入图片描述
这里我们想要获取的无非就是具体的每一节数据和总分,然后如果用户还有其他需求的话我们就直接将其推送到百度网址上面来
在这里插入图片描述
爬取的思路大概就是这样,首先先访问主页面,然后在访问旗下今天的比赛,最后将比赛结果返回


编写代码

首先我们使用REQUESTS来访问网址
在这里插入图片描述
我们可以看到,百度没有做任何限制,直接访问也可以获得内容
在这里插入图片描述
接下来我们使用解析库进行解析
在这里插入图片描述
首先我们先将程序定位到Main标签
在这里插入图片描述
代码则是这样的,运行代码我们会发现,整个代码缩进了不少
在这里插入图片描述
在这里插入图片描述
获取主要的页面,我们使用FIND函数进行进一步操作
在这里插入图片描述
我们成功定位到了这个主页面,接下来就是我们开始爬取最近几次的比赛信息和详细页面了
在这里插入图片描述
更改代码,我们直接获取所有的比赛信息
在这里插入图片描述
在测试网站的时候,我发现百度竟然使用了AJAX技术,就是说你一次性获得的网站源代码可能只有五条,然后要进行再一次加载才能获取接下来的数据。但是这也对我们程序来说挺好的,我们本来也不需要那么多数据。
在这里插入图片描述
我们在这里查找了每一个的日期,查找对象为 date,接下来我们把其转换成字符串,因为百度上面这个日期有缩进,所以我们在后面添加 STRIP() 取消字符串前面的空格。按照这样的方式获取比赛地址
在这里插入图片描述在这里插入图片描述
在这里,我们使用拼接字符串的方法,完成了对最后地址的解析
在这里插入图片描述

# 程序名称 : NBAReporter
# 制作时间 : 2021年6月13日
# 运行环境 : Windows 10

import requests
from bs4 import BeautifulSoup

# 基础数据定义
baidu_nba_url = "https://tiyu.baidu.com/match/NBA/"
request_url = "https:"
nba_dict = {
   
   }

# 访问网址
nba_res = requests.get(baidu_nba_url)
# print(nba_res.text)

# 开始使用解析器
nba_soup = BeautifulSoup(nba_res.text, "html.parser")
nba_main = nba_soup.main
# print(nba_main)

nba_div = nba_main.find_all("div", class_ = "wa-match-schedule-list-wrapper")

for i in nba_div:
	# 获取比赛时间
	nba_time = i.find("div", class_ = "date").string.strip()
	print(nba_time)
	# 获取比赛的次数
	nba_times = i.find("div", class_ = "list-num c-color").string
	print(nba_times)
	# 获取详细的比赛地址
	nba_href = i.find_all("div", class_ = "wa-match-schedule-list-item c-line-bottom")

	for url_nba in nba_href:
		url_nba = url_nba.a
		url_href = url_nba["href"]

		real_url = request_url + url_href
		print(real_url) 

接下来我们要开始剩余部分的解析,我们可以看到我们还有一部分的详细信息没有爬取,所以我们开始爬取详细信息
在这里插入图片描述

按照逻辑继续编写代码

评论 26
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地摊主老袁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值