婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python利用PyQt5制作一個獲取網(wǎng)絡(luò)實時數(shù)據(jù)NBA數(shù)據(jù)播報GUI功能

Python利用PyQt5制作一個獲取網(wǎng)絡(luò)實時數(shù)據(jù)NBA數(shù)據(jù)播報GUI功能

熱門標(biāo)簽:上海正規(guī)的外呼系統(tǒng)最新報價 企業(yè)彩鈴地圖標(biāo)注 如何地圖標(biāo)注公司 長春極信防封電銷卡批發(fā) 電銷機(jī)器人錄音要學(xué)習(xí)什么 外賣地址有什么地圖標(biāo)注 銀川電話機(jī)器人電話 預(yù)覽式外呼系統(tǒng) 煙臺電話外呼營銷系統(tǒng)

制作NBA數(shù)據(jù)爬蟲

捋順?biāo)悸?/h3>

我們在這里選擇的是百度體育帶來的數(shù)據(jù),我們在百度當(dāng)中直接搜索NBA跳轉(zhuǎn)到網(wǎng)頁,我們可以看到,百度已經(jīng)為我們提供了相關(guān)的數(shù)據(jù)

我們點擊進(jìn)去后,可以發(fā)現(xiàn)這是一個非常簡潔的網(wǎng)址

我們看一下這個地址欄,發(fā)現(xiàn)毫無規(guī)律https://tiyu.baidu.com/live/detail/576O5Zu955S35a2Q6IGM5Lia56%2Bu55CD6IGU6LWbI2Jhc2tldGJhbGwjMjAyMS0wNi0xMyPniLXlo6t2c%2BWspritq%2BiIuQ%3D%3D/from/baidu_aladdin

好吧,只能再找找了,我們點擊整個標(biāo)簽發(fā)現(xiàn),這是一個網(wǎng)址,那就容易多了。

這里我們想要獲取的無非就是具體的每一節(jié)數(shù)據(jù)和總分,然后如果用戶還有其他需求的話我們就直接將其推送到百度網(wǎng)址上面來

爬取的思路大概就是這樣,首先先訪問主頁面,然后在訪問旗下今天的比賽,最后將比賽結(jié)果返回


編寫代碼

首先我們使用REQUESTS來訪問網(wǎng)址

我們可以看到,百度沒有做任何限制,直接訪問也可以獲得內(nèi)容

接下來我們使用解析庫進(jìn)行解析

首先我們先將程序定位到Main標(biāo)簽

代碼則是這樣的,運行代碼我們會發(fā)現(xiàn),整個代碼縮進(jìn)了不少


獲取主要的頁面,我們使用FIND函數(shù)進(jìn)行進(jìn)一步操作

我們成功定位到了這個主頁面,接下來就是我們開始爬取最近幾次的比賽信息和詳細(xì)頁面了

更改代碼,我們直接獲取所有的比賽信息

在測試網(wǎng)站的時候,我發(fā)現(xiàn)百度竟然使用了AJAX技術(shù),就是說你一次性獲得的網(wǎng)站源代碼可能只有五條,然后要進(jìn)行再一次加載才能獲取接下來的數(shù)據(jù)。但是這也對我們程序來說挺好的,我們本來也不需要那么多數(shù)據(jù)。

我們在這里查找了每一個的日期,查找對象為 date,接下來我們把其轉(zhuǎn)換成字符串,因為百度上面這個日期有縮進(jìn),所以我們在后面添加 STRIP() 取消字符串前面的空格。按照這樣的方式獲取比賽地址

在這里,我們使用拼接字符串的方法,完成了對最后地址的解析

# 程序名稱 : NBAReporter
# 制作時間 : 2021年6月13日
# 運行環(huán)境 : Windows 10

import requests
from bs4 import BeautifulSoup

# 基礎(chǔ)數(shù)據(jù)定義
baidu_nba_url = "https://tiyu.baidu.com/match/NBA/"
request_url = "https:"
nba_dict = {}

# 訪問網(wǎng)址
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)
	# 獲取比賽的次數(shù)
	nba_times = i.find("div", class_ = "list-num c-color").string
	print(nba_times)
	# 獲取詳細(xì)的比賽地址
	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)

接下來我們要開始剩余部分的解析,我們可以看到我們還有一部分的詳細(xì)信息沒有爬取,所以我們開始爬取詳細(xì)信息

按照邏輯繼續(xù)編寫代碼

然后我們獲取一下這里面的值

獲取比賽的相關(guān)分?jǐn)?shù)后,我們創(chuàng)建兩個列表,一個列表定義我們等一下需要用到NBA的樣式,另一個列表則存儲今天的日期,最后返回

我們已經(jīng)在這里吧這個方法封裝了,所以我們創(chuàng)建一個新的文件,直接導(dǎo)入即可

NBAReporter.py

# 程序名稱 : NBAReporter
# 制作時間 : 2021年6月13日
# 運行環(huán)境 : Windows 10

import requests
from bs4 import BeautifulSoup

def NBAReporter():
	# 基礎(chǔ)數(shù)據(jù)定義
	baidu_nba_url = "https://tiyu.baidu.com/match/NBA/"
	request_url = "https:"
	nba_list = []
	today_list = []
	
	# 訪問網(wǎng)址
	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:
		# 獲取比賽時間
		today = i.find("div", class_ = "date").string.strip()
		# 獲取比賽的次數(shù)
		nba_times = i.find("div", class_ = "list-num c-color").string
		# 獲取詳細(xì)的比賽地址
		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) 

			# 獲取詳細(xì)數(shù)據(jù)
			vs_time = url_nba.find("div", class_ = "font-14 c-gap-bottom-small").string
			vs_finals = url_nba.find("div",class_ = "font-12 c-color-gray").string

			team_row_1 = url_nba.find("div", class_ = "team-row")
			team_row_2 = url_nba.find("div", class_ = "c-gap-top-small team-row")

			"""team_row_1_jpg = team_row_1.find("div", class_ = "inline-block")["style"]
												team_row_2_jpg = team_row_2.find("div", class_ = "inline-block")["style"]
												print(team_row_1_jpg,team_row_2_jpg)"""
			team_row_1_name = team_row_1.find("span", class_ = "inline-block team-name team-name-360 team-name-320 c-line-clamp1").string
			team_row_2_name = team_row_2.find("span", class_ = "inline-block team-name team-name-360 team-name-320").string
			# print(team_row_1_name,team_row_2_name)
			team_row_1_score = team_row_1.find("span", class_ = "inline-block team-score-num c-line-clamp1").string
			team_row_2_score = team_row_2.find("span", class_ = "inline-block team-score-num c-line-clamp1").string
			# print(team_row_1_score,team_row_2_score)

			"""import re 		# 導(dǎo)入re庫,不過最好還是在最前面導(dǎo)入,這里是為了演示的需要
									
												team_row_1_jpg_url = re.search(r'background:url(.*)', team_row_1_jpg)
												team_row_1_jpg_url = team_row_1_jpg_url.group(1)
												team_row_2_jpg_url = re.search(r'background:url(.*)', team_row_2_jpg)
												team_row_2_jpg_url = team_row_2_jpg_url.group(1)"""

			nba = [ today, nba_times,"","",
					vs_time, vs_finals, team_row_1_name, team_row_2_name,
					"","", team_row_1_score, team_row_2_score
			]

			nba_list.append(nba)
			today_list.append(today)

	return nba_list,today_list

這里我們要編寫的是GUI界面的實現(xiàn)程序

首先先導(dǎo)入我們運行所需要的庫

簡單定義一下我們的代碼,設(shè)置標(biāo)題和其他的一些窗口屬性# self.setWindowOpacity(0.5)這里是設(shè)置窗口透明程度的一行代碼,但是經(jīng)過我的測驗之后,發(fā)現(xiàn)這樣子真的對于用戶體驗一點也不好,所以在這里我把它注釋掉了

程序主邏輯如上圖所示,我們創(chuàng)建了一個單元布局,然后又創(chuàng)建了和比賽一樣的若干個標(biāo)簽,最后將函數(shù)返回的列表以標(biāo)簽的形式放在主窗口上面

最后創(chuàng)建事件,運行程序,這樣子整個程序就完成了

NBAWindow.py

# 程序名稱 : NBAWindow
# 制作時間 : 2021年6月14日
# 運行環(huán)境 : Windows 10
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from NBAReporter import *

# 首先創(chuàng)建一個主窗口
class NBAWindow(QTabWidget):
	def __init__(self):
		super().__init__()
		self.make_Ui()

		"""		# 兩分鐘自動刷新
		self.timer = QTimer()
		self.timer.setInterval(500)
		self.timer.timeout.connect(self.make_Ui)
		self.timer.start()"""

		self.setWindowTitle("NBA數(shù)據(jù)")
		self.setGeometry(1440,0,480,300)
		self.setFixedSize(480,300)
		self.setWindowIcon(QIcon('images/nba.jpg'))
		self.setStyleSheet("""background-color:red; """)
		# self.setWindowOpacity(0.5)
		self.setWindowFlags(Qt.WindowStaysOnTopHint|Qt.WindowMinimizeButtonHint|Qt.FramelessWindowHint)

	def make_Ui(self):
		self.nba,today = NBAReporter()
		self.tab = 0

		for a in self.nba:
			# 設(shè)置網(wǎng)格單元布局
			grid = QGridLayout()
			self.setLayout(grid)

			# 開始添加一個標(biāo)簽
			tab = QWidget()
			# 將這個標(biāo)簽設(shè)置為TAB并按照列表中的數(shù)值命名
			self.addTab(tab,today[self.tab])

			# 獲取循環(huán)之后的位置,重寫列表
			positions = [(i, j) for i in range(3) for j in range(4)]
			nba_list = self.nba[self.tab]

			# 開始創(chuàng)建Tab下面的標(biāo)簽
			for position, nba in zip(positions, nba_list):
				#print(nba)
				# 當(dāng)時空值時,跳過執(zhí)行
				if nba == "":
					continue
				
				# 設(shè)置文字樣式
				label = QLabel("font color='black', size=5>b>%s/b>/font>"%nba)
				grid.addWidget(label, *position)

				# 設(shè)置整個窗口為表格布局
				tab.setLayout(grid)

				# grid.update()

			# 將數(shù)值加一
			self.tab += 1

if __name__ == '__main__':
	app = QApplication(sys.argv)
	window = NBAWindow()
	window.show()
	app.exec_()

NBAReporter.py

# 程序名稱 : NBAReporter
# 制作時間 : 2021年6月13日
# 運行環(huán)境 : Windows 10

import requests
from bs4 import BeautifulSoup

def NBAReporter():
	# 基礎(chǔ)數(shù)據(jù)定義
	baidu_nba_url = "https://tiyu.baidu.com/match/NBA/"
	request_url = "https:"
	nba_list = []
	today_list = []
	
	# 訪問網(wǎng)址
	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:
		# 獲取比賽時間
		today = i.find("div", class_ = "date").string.strip()
		# 獲取比賽的次數(shù)
		nba_times = i.find("div", class_ = "list-num c-color").string
		# 獲取詳細(xì)的比賽地址
		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) 

			# 獲取詳細(xì)數(shù)據(jù)
			vs_time = url_nba.find("div", class_ = "font-14 c-gap-bottom-small").string
			vs_finals = url_nba.find("div",class_ = "font-12 c-color-gray").string

			team_row_1 = url_nba.find("div", class_ = "team-row")
			team_row_2 = url_nba.find("div", class_ = "c-gap-top-small team-row")

			"""team_row_1_jpg = team_row_1.find("div", class_ = "inline-block")["style"]
												team_row_2_jpg = team_row_2.find("div", class_ = "inline-block")["style"]
												print(team_row_1_jpg,team_row_2_jpg)"""
			team_row_1_name = team_row_1.find("span", class_ = "inline-block team-name team-name-360 team-name-320 c-line-clamp1").string
			team_row_2_name = team_row_2.find("span", class_ = "inline-block team-name team-name-360 team-name-320").string
			# print(team_row_1_name,team_row_2_name)
			team_row_1_score = team_row_1.find("span", class_ = "inline-block team-score-num c-line-clamp1").string
			team_row_2_score = team_row_2.find("span", class_ = "inline-block team-score-num c-line-clamp1").string
			# print(team_row_1_score,team_row_2_score)

			"""import re 		# 導(dǎo)入re庫,不過最好還是在最前面導(dǎo)入,這里是為了演示的需要
									
												team_row_1_jpg_url = re.search(r'background:url(.*)', team_row_1_jpg)
												team_row_1_jpg_url = team_row_1_jpg_url.group(1)
												team_row_2_jpg_url = re.search(r'background:url(.*)', team_row_2_jpg)
												team_row_2_jpg_url = team_row_2_jpg_url.group(1)"""

			nba = [ today, nba_times,"","",
					vs_time, vs_finals, team_row_1_name, team_row_2_name,
					"","", team_row_1_score, team_row_2_score
			]

			nba_list.append(nba)
			today_list.append(today)

	return nba_list,today_list

效果演示

轉(zhuǎn)載聲明

本文于2021年6月14日首發(fā)自CSDN,如需轉(zhuǎn)載,請附上原文鏈接:Python利用PyQt5制作一個獲取網(wǎng)絡(luò)實時數(shù)據(jù)NBA數(shù)據(jù)播報GUI

到此這篇關(guān)于Python利用PyQt5制作一個獲取網(wǎng)絡(luò)實時數(shù)據(jù)NBA數(shù)據(jù)播報GUI功能的文章就介紹到這了,更多相關(guān)Python獲取網(wǎng)絡(luò)實時數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解Python GUI工具取色器
  • Python常用GUI框架原理解析匯總
  • python GUI框架pyqt5 對圖片進(jìn)行流式布局的方法(瀑布流flowlayout)
  • Python的GUI框架PySide的安裝配置教程
  • 帶你詳細(xì)了解Python GUI編程框架

標(biāo)簽:盤錦 珠海 佳木斯 西寧 潮州 上饒 宜昌 湖北

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python利用PyQt5制作一個獲取網(wǎng)絡(luò)實時數(shù)據(jù)NBA數(shù)據(jù)播報GUI功能》,本文關(guān)鍵詞  Python,利用,PyQt5,制作,一個,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python利用PyQt5制作一個獲取網(wǎng)絡(luò)實時數(shù)據(jù)NBA數(shù)據(jù)播報GUI功能》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python利用PyQt5制作一個獲取網(wǎng)絡(luò)實時數(shù)據(jù)NBA數(shù)據(jù)播報GUI功能的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久99蜜桃精品| 亚洲老妇xxxxxx| 精品一区二区三区免费毛片爱 | 欧美日韩在线观看一区二区 | 亚洲卡通欧美制服中文| 日韩成人一级片| 色婷婷久久一区二区三区麻豆| 一本到高清视频免费精品| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品久久久久久久蜜臀| 国产女同性恋一区二区| 日韩电影在线一区二区| 欧美主播一区二区三区| 日本一区二区成人| 欧美日韩一区二区在线观看| 国产精品美女久久久久久久网站| 国模娜娜一区二区三区| 国产视频一区在线观看 | 亚洲最大的成人av| 在线视频欧美区| 亚洲最新视频在线观看| 奇米精品一区二区三区在线观看| 欧美男女性生活在线直播观看| 美女视频一区二区| 国产精品天美传媒沈樵| 国产精品三级电影| 国精产品一区一区三区mba视频| 欧美丝袜丝nylons| 久久www免费人成看片高清| 久久免费美女视频| 欧美亚洲综合久久| 国产福利一区二区三区视频| 亚洲欧洲一区二区三区| 欧美日韩激情一区二区| 国产在线一区二区| 五月婷婷激情综合| 国产无遮挡一区二区三区毛片日本| kk眼镜猥琐国模调教系列一区二区 | 成人精品小蝌蚪| 日本免费在线视频不卡一不卡二| 精品嫩草影院久久| 91麻豆自制传媒国产之光| 国内偷窥港台综合视频在线播放| 亚洲视频在线观看三级| 精品国产乱码久久久久久久| 欧美一区二区三区视频在线| 欧美日韩日日摸| 国产91在线|亚洲| 国产综合色精品一区二区三区| 亚洲一区二区三区四区在线免费观看| 日本一区二区三区高清不卡| 欧美一区二区精品在线| 9191精品国产综合久久久久久| 在线一区二区三区| 91亚洲精华国产精华精华液| 国产一区二区三区日韩| 国产二区国产一区在线观看| 国产一区二区久久| 国产在线看一区| 欧美国产精品一区| 日韩美女精品在线| 亚洲精品免费一二三区| 国产精品99久久久久久似苏梦涵 | 麻豆精品一二三| 高清国产一区二区三区| 欧美一区二区在线免费播放| 国产精品另类一区| 亚洲一区二区五区| 国产精品1区2区| 亚洲国产精华液网站w| 亚洲第一福利视频在线| 国产精品888| 精品少妇一区二区三区免费观看| 亚洲丶国产丶欧美一区二区三区| 成人精品电影在线观看| 久久色视频免费观看| 日韩精品亚洲一区二区三区免费| 91天堂素人约啪| 中文字幕中文乱码欧美一区二区 | www.日韩精品| 亚洲精品一区二区三区香蕉| 免费高清在线一区| 欧美区在线观看| 日本vs亚洲vs韩国一区三区 | 久久精品视频在线看| 国内精品不卡在线| 国产日韩亚洲欧美综合| 色综合天天综合给合国产| 中文字幕一区二区三区在线不卡| av一二三不卡影片| 亚洲精品国产成人久久av盗摄| 不卡一区二区中文字幕| 自拍偷拍亚洲激情| 日韩精品电影在线观看| voyeur盗摄精品| 亚洲视频免费在线观看| 欧美日韩三级一区二区| 精品一区二区免费看| 国产精品久久久久久久久搜平片| 91在线观看下载| 青青草精品视频| 国产亚洲欧美日韩日本| 色美美综合视频| 亚洲日本乱码在线观看| 国产精品免费看片| 一本色道久久综合精品竹菊| 一区二区三区成人| 日韩一区二区在线看片| 国产成人高清在线| 一区二区三区久久久| 精品国产第一区二区三区观看体验 | 国产精品你懂的在线欣赏| 欧美日韩一区二区三区免费看 | 99久久99久久精品免费观看| 日韩高清在线不卡| 亚洲精品国产a| ...中文天堂在线一区| 久久精品一区二区三区不卡| 在线影院国内精品| 成人美女视频在线看| 国产一区二区三区在线观看精品 | 欧美网站一区二区| 国产成a人亚洲| 国产一区二区三区国产| 免费成人av在线| 天堂资源在线中文精品| 亚洲欧美日韩中文播放| 日韩一区日韩二区| 亚洲综合精品自拍| 亚洲成人精品一区| 日韩国产在线观看| 蜜桃久久av一区| 国产一区二区三区国产| 国产91露脸合集magnet| av一区二区三区四区| 欧美日韩在线电影| 日韩精品一区二区三区老鸭窝| 精品久久久久久最新网址| 久久久91精品国产一区二区精品| 中文字幕视频一区| 亚洲色图欧美在线| 午夜私人影院久久久久| 国产一区二区不卡| 色婷婷综合久久久中文字幕| 亚洲精品中文在线观看| 精品成人在线观看| 91精品国产高清一区二区三区 | 99精品偷自拍| 欧美日本一区二区三区四区| 久久精品在线免费观看| 亚洲高清三级视频| 九九九久久久精品| 欧美性猛交xxxx乱大交退制版 | 欧美一区二区不卡视频| 国产偷国产偷亚洲高清人白洁| 中文字幕亚洲视频| 老汉av免费一区二区三区| 色先锋aa成人| 中文字幕一区二区三| 久久av资源网| 在线播放中文一区| jizzjizzjizz欧美| 成人av在线一区二区三区| 欧美色倩网站大全免费| 久久精品视频免费| 一级精品视频在线观看宜春院| 精彩视频一区二区| 在线不卡一区二区| 亚洲综合在线观看视频| 99久久久无码国产精品| 亚洲国产精品v| 99久久婷婷国产综合精品电影| 国产欧美一区二区三区网站| 久久国产乱子精品免费女| 午夜成人免费电影| 色婷婷精品久久二区二区蜜臂av| 亚洲人成亚洲人成在线观看图片 | 亚洲地区一二三色| 91网站黄www| 亚洲精品欧美激情| 在线不卡免费欧美| 国产精品综合在线视频| 日韩精品一区二区三区中文不卡| 久久精品国产精品青草| 国产喂奶挤奶一区二区三区 | 亚洲愉拍自拍另类高清精品| 欧美人伦禁忌dvd放荡欲情| 欧美日韩一区国产| 在线观看亚洲a| 久久99精品久久久久久久久久久久| 久久久久久综合| 国产精品66部| 性感美女极品91精品| 久久久久国产精品免费免费搜索| 欧美视频你懂的| 成人福利视频网站| 蜜臀av性久久久久蜜臀aⅴ| 亚洲欧洲无码一区二区三区| 久久婷婷色综合| 91精品国产免费|