之前学习折腾了一个ESP8266的B站粉丝数显示器。

这少得可怜的数量。。
现在使用QT5简单布局,写一个PC端的粉丝显示。默认显示自己的粉丝数 、点赞数,播放量 数据。也可以显示其他人的数据,需要获取uid,代码如下:
import sys
import requests
import json
from PyQt5.uic import loadUi
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class MainWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
loadUi("BiliBiliFans_1.ui", self)
self.lcdNumber.setDigitCount(10)
self.lcdNumber_2.setDigitCount(10)
self.lcdNumber_3.setDigitCount(10)
self.lcdNumber.setMode(QLCDNumber.Dec)
self.lcdNumber_2.setMode(QLCDNumber.Dec)
self.lcdNumber_3.setMode(QLCDNumber.Dec)
self.lcdNumber.setSegmentStyle(2)
self.lcdNumber_2.setSegmentStyle(2)
self.lcdNumber_3.setSegmentStyle(2)
if len(sys.argv) > 1:
uid = sys.argv[1]
else:
uid = "323204204"
headers = {
'Host': 'api.bilibili.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0',
'Cookie': "*************cookie值自己动手获取"
}
like_view_url = 'http://api.bilibili.com/x/space/upstat?mid=%s' % uid
fans_url = "http://api.bilibili.com/x/relation/stat?vmid=%s" % uid
info_url = "https://api.bilibili.com/x/space/acc/info?mid=%s&jsonp=jsonp" % uid
like_view = requests.get(url=like_view_url, headers=headers)
fans = requests.get(url=fans_url, headers=headers)
user_infos = requests.get(url=info_url, headers=headers)
like_view_num = json.loads(like_view.text)
fans_num = json.loads(fans.text)
user_info = json.loads(user_infos.text)
if user_info['code'] != 0:
user_name = user_info['message']
else:
user_name = user_info['data']['name']
if fans_num['code'] != 0:
fans_nums = 0
else:
fans_nums = fans_num['data']['follower']
if like_view_num['code'] != 0:
views = 0
likes = 0
else:
views = like_view_num['data']["archive"]["view"]
likes = like_view_num['data']['likes']
self.lcdNumber.display(fans_nums)
self.lcdNumber_2.display(views)
self.lcdNumber_3.display(likes)
self.setWindowTitle(user_name+"_B站粉丝数显示")
self.setStatusTip(user_name+"_B站粉丝数显示")
self.timer = QBasicTimer()
self.timer.start(5000, self)
def timerEvent(self, event):
if event.timerId() == self.timer.timerId():
if len(sys.argv) > 1:
uid = sys.argv[1]
else:
uid = "323204204"
headers = {
'Host': 'api.bilibili.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:62.0) Gecko/20100101 Firefox/62.0',
'Cookie': "*************cookie值自己动手获取"
}
like_view_url = 'http://api.bilibili.com/x/space/upstat?mid=%s' % uid
fans_url = "http://api.bilibili.com/x/relation/stat?vmid=%s" % uid
like_view = requests.get(url=like_view_url, headers=headers)
fans = requests.get(url=fans_url, headers=headers)
like_view_num = json.loads(like_view.text)
fans_num = json.loads(fans.text)
if fans_num['code'] != 0:
fans_nums = 0
else:
fans_nums = fans_num['data']['follower']
if like_view_num['code'] != 0:
views = 0
likes = 0
else:
views = like_view_num['data']["archive"]["view"]
likes = like_view_num['data']['likes']
self.lcdNumber.display(fans_nums)
self.lcdNumber_2.display(views)
self.lcdNumber_3.display(likes)
app = QApplication(sys.argv)
window = MainWindow()
window.setWindowFlags(Qt.WindowStaysOnTopHint)
window.setFixedSize(window.width(), window.height())
window.show()
sys.exit(app.exec_())
pyinstaller打包为exe文件,因为通过LoadUi加载的QT5设计保存的ui文件,所以需要把ui文件和exe文件放在同一个目录下。

默认显示自己的数据

加上uid可以显示其他人的数据。

有需要的可以自行完善。