前言

前一段时间我在翻B站。突然,我想到了一个点子——为何不写一个UP主计数器?

于是我到翻了一下B站,发现相关视频也就几个(搜粉丝计数器的时候,一抓也有一些),翻到专栏后,居然没有一个专栏是如何写UP主计数器(搜粉丝计数器倒是有一个)搜索结果

因为我是玩Python的,所以我就用Python写了一个UP主计数器。

该计数器除了记录粉丝量以外,还记录视频总观看量,专栏总阅读量等。

有粉丝要求我把(设计界面的)教程发出来。既然粉丝需要,那我就满足粉丝的要求。

当然在此之前,还是先进入正题。

原理

之前我发布过一篇写爬虫的文章,如果没看过该文章,传送门就在下面。

但是有一点,跟之前的那篇文章不同的是,这次我们用的是JSON(之前的那篇是直接用正则表达式)。

那么什么是JSON?

JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

代码解析

接下来我就带大家深入了解一下UP主计数器的核心是如何工作的。

先上代码:

(代码我就直接截图了,想看完整代码可以去Github或者码云)

图一 导入模块

图二 观看量统计模块(以获取观看量为例)

我们先看图一,图一就是导入两个模块:requests和json

再看图二,这是一个获取观看量的模块。

首先我们要用User-Agent代理,以及你的Cookie(已登录状态下)。

目的:绕开反爬,并且获取你的UP主信息。

接下来我就不用说了,发送请求,调用B站的API。

然后就是读取文本,获取Json内容。

读取内容过后,接下来就要用到json包处理数据。

格式如下:

值的名称 = 页面变量名['第一层json关键字']['第二层json关键字']......['第n层json关键字']

最后就是返回值,使get_views(UID,Cookie)可以作为一个值使用。

例如:

print(get_views(UID,Cookie))

那么,返回的值就是观看量的值。

界面开发指南

在开始制作你的界面之前,首先让我们来了解一下如何使用模块:

直接看图↓第一部分

第二部分

输出结果输出结果

至于为什么会出现两次,是因为我用了两种用法。

接下来,只需要你学会如何使用PyQt(或者自己写一个Tkinter也可以)就可以了。在此我不多阐述。(B站上有一大堆教程)

才怪,还没结束呢!

先新建一个文件夹,给文件夹命名为“up-counter_classroom”,将example_gui.py文件拷入这个文件夹内。

打开Qt Creator(或者Qt Designer也行),UP主本人就以Qt Creator为例。Qt Creator

点击“文件→新建文件或项目”,会弹出以下窗口:新建文件或项目窗口-1

点击“文件和类”下的“Qt Designer Form”,点击Choose新建文件或项目窗口-2

选择Main Window,点击下一步Qt Designer Form

设定好名称和路径后,我们就进入到了Project Management,直接点完成即可。

界面如下:界面

接下来我们把菜单栏和状态栏去掉,并且缩小到......

380x100即可

如图所示:

接下来我们来做一个简单的计数器

首先我们把按钮,标签和LCD拖进去,出来的界面就像这样,当然还得该属性和标签,都在上图的侧边栏里面。各组件要改内容的只有MinimumSize、MaximumSize、geometry的高度和宽度、Text和objectName。

结果就像这样:界面效果

保存,关闭Creator。转到VSCode(PyCharm也可以)。VS Code界面

在终端里面输入以下命令:

pyuic5 -o example_gui.py example_ui.ui终端

接下来就把按钮事件写进去吧!

代码如下:

按钮事件

启动界面逻辑

如果运行时出现出现以下情况:Error!!!!

请先删除35行的 MainWindow.setCentralWidget(self.centralwidget) 再重新运行。

运行后,点击“刷新”按钮,如果看到了以下界面,那么恭喜你,你成功地做出了属于你的计数器!

Congratulations!

观看量,总获赞量等也是一样的道理哦!

当然,如果你用其他编程语言写程序,也没关系!直接Fork并修改我的项目吧!

前提是:别把核心代码删了就行(除非你要从头开始写计数器核心)

介绍视频:

下载连接:

GitHub:https://github.com/Chrithon/up-counter

Gitee(码云):https://gitee.com/ying2002/up-counter

该文章采用CC-BY-NC-ND(署名-非商业性使用-禁止演绎) 4.0协议,如需商用,请联系原作者,谢谢!

用python做一个计数器_Python写一个UP主计数器(送界面定制指南)相关推荐

  1. python关于通讯录模型_python写一个通讯录 - wtwexile - 博客园

    python写一个通讯录 闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 接下来就按照这个流程实现各个模块的功能 1. 定义一个类,并初始化 1 import j ...

  2. 用python写一个通讯录_python写一个通讯录

    闲着没事,用python写一个模拟通讯录,要求要实现常用的通讯录的功能,基本流程如下 ​ 接下来就按照这个流程实现各个模块的功能 1. 定义一个类,并初始化 def __init__(self): w ...

  3. python做七夕礼物_python写七夕硬核礼物!

    明天就是七夕了! 如果有对象,祝早生贵子!没有对象,祝早结连理! (搞笑一下,祝大家幸福美满吧,嘿嘿嘿) 给大家准备了一份已经写好的代码,利用python+opencv+openpyxl,opencv ...

  4. python软件中文翻译_python 写一个桌面版的翻译软件

    主要技术:爬虫和tkinter模块的运用 思路说明:设计一个图形界面,第一行输入中文,点击 "翻译" 按钮,此时做的就是将输入的内容,通过有道网页翻译,发出POST请求,得到回应后 ...

  5. python写一个服务_Python写一个服务

    # coding:utf-8 import json from urllib.parse import parse_qs from wsgiref.simple_server import make_ ...

  6. python 京东 抢券_Python写一个京东抢券脚本

    最近看到京东图书每天有优惠券发放,满200减100,诱惑还是蛮大的.反正自己抢不到,想着写个脚本试试. ##几个关键步骤 获取优惠券的url 直接审查元素 获取cookie 通过本地代理,比如Burp ...

  7. python抢券代码_Python写一个京东抢券脚本

    最近看到京东图书每天有优惠券发放,满200减100,诱惑还是蛮大的.反正自己抢不到,想着写个脚本试试. 几个关键步骤 获取优惠券的url 直接审查元素 获取cookie 通过本地代理,比如BurpSu ...

  8. python在线翻译脚本_python写一个翻译的小脚本

    起因: 想着上学看不懂English的PDF感慨万分........ 然后就有了翻译的脚本. 截图: 代码: #-*- coding:'utf-8' -*- import requests impor ...

  9. 给定一个数学函数写一个程序来确定该函数是否是双射的

    离散题目11 Time Limit: 1000 msMemory Limit: 65536 KiB Problem Description 给定一个数学函数写一个程序来确定该函数是否是双射的 Inpu ...

最新文章

  1. 中科大倪茹:感谢开源,我从入门竞赛到Top 10的经验分享
  2. Day19-File操作-创建 删除,文件过滤
  3. wireshark抓包图解 TCP三次握手/四次挥手详解
  4. J2EE软件开发视频教程
  5. 【java】java 如何不使用第三个变量来交换两个数的值
  6. http头部 Expect
  7. c语言编程题题库及详解答案,C语言编程题及答案.pdf
  8. Android系统模块编译Makefile编写规则
  9. 国内银行CNAPS CODE 查询
  10. python设置主题背景
  11. 从零实现深度学习框架——前馈网络语言模型
  12. 问题 A: 【动态规划】机器人军团(最大不下降子序列)
  13. php处理微信weui图片上传
  14. C++编写木马全过程
  15. 如何做看到总服务器的文件,怎么看到服务器大内存文件夹
  16. Arduino DRV8825驱动两相步进电机
  17. keras使用VGG19网络模型实现风格迁移
  18. php-fpm彻底解决502(php-fpm多开、nginx限制并发、定时重启)解决网站卡顿的终极奥义
  19. private和protected的区别
  20. Codeforces 715A Plus and Square Root

热门文章

  1. vue3中使用jszip压缩文件
  2. 三台机器安装zookeeper集群
  3. 图像增强常用评价标准——峰值信噪比、结构相似度
  4. 信号处理与数据分析——Z变换
  5. 你的电脑是如何识别色图的?
  6. AVEVA 剑维软件助力厦门大学深化产学研用深度融合
  7. 直流电机(BLDC)转速和频率的计算关系
  8. 电子词典(用map改写)
  9. 原来谷歌是这样构建 Docker 镜像的!
  10. Android NDK下STD库share static方式加载 (so库混乱调用问题)