云天 发表于 2021-12-19 14:17:38

Mind+Python bilibili播放次数提醒灯

本帖最后由 云天 于 2021-12-19 14:21 编辑


【项目背景】
最近在论坛发了一个“光传声”小实验的帖子,视频上传到bilibili上,没想到播放量几日便接近20W。近几日又上传了几个视频,播放量就不行了,但我还是挺关注的,但也不能一直关注着。所以想通过灯光提醒,小屏幕显示播放次数有变化。
【项目设计】
在Mind+Python模式中,使用BeautifulSoup库对网页数据进行抓取分析,提取出播放量。再通过Pinpong库,让Arduino控制LED灯带及OLED屏。
【程序设计】

from bs4 import BeautifulSoup
import re
import requests
import time
from pinpong.board import Board,NeoPixel,Pin
from pinpong.libs.dfrobot_ssd1306 import SSD1306_I2C #导入ssd1306库
Board("uno").begin()               #初始化,选择板型(uno、leonardo、xugu)和端口号,不输入端口号则进行自动识别

oled=SSD1306_I2C(width=128, height=64) #初始化屏幕,传入屏幕像素点数
NEOPIXEL_PIN = Pin(Pin.D2)
PIXELS_NUM = 60 #灯数

np = NeoPixel(NEOPIXEL_PIN,PIXELS_NUM)
html='https://www.bilibili.com/video/BV1Wb4y1q7ZU'
tem_num=0
np.clear()
oled.fill(0) #全部填充熄灭,清屏
oled.show() #显示生效
while(1):
res = requests.get(html)
res.encoding = 'utf-8'
bs = BeautifulSoup(res.text,"html.parser")

pl_list=bs.find_all(id=re.compile("viewbox_report"))#寻找id="viewbox_report"
bs2 = BeautifulSoup(str(pl_list),"html.parser")#寻找浏览个数所在“span”
view=bs2.find('span', class_='view')
view=str(view)
view=view.replace("播放","")
view=view.replace("·","")

bs2 = BeautifulSoup(view,"html.parser")
data=int(bs2.span.text)


if tem_num==0:#判断浏览量是否有增加
   tem_num=data
if data>tem_num:   
      tem_num=data
      #因暂时编译有错误,不显示中文,暂时用以下英文“点赞”代替
      oled.text("Look it",8,8)
      oled.text(data,8,20) #指定位置显示文字,
      oled.show()#显示生效
      np.rainbow(0,60,0,0x0000FF)
   
      time.sleep(3)
      oled.fill(0) #全部填充熄灭,清屏
      oled.show() #显示生效
      np.clear()
else:
    time.sleep(10)   


使用的bilibili页面是:https://www.bilibili.com/video/BV1Wb4y1q7ZU,有人点击播放,就有灯光和显示提示。
【效果图】





【演示视频】
https://www.bilibili.com/video/BV1j44y1J7Wm?share_source=copy_web

【Dfrobot浏览量提醒】
我一开始是做的“Dfrobot浏览量提醒”,但论坛存在“增加浏览量”的问题,之前我反应过,但到现在还没有处理好。通过以下程序,并不能实现以上功能,因为程序循环一次,页面浏览量就增加1次(作弊)。
代码放在下面:

from bs4 import BeautifulSoup
import re
import requests
import time
from pinpong.board import Board,NeoPixel,Pin
from pinpong.libs.dfrobot_ssd1306 import SSD1306_I2C #导入ssd1306库
Board("uno").begin()               #初始化,选择板型(uno、leonardo、xugu)和端口号,不输入端口号则进行自动识别

oled=SSD1306_I2C(width=128, height=64) #初始化屏幕,传入屏幕像素点数
NEOPIXEL_PIN = Pin(Pin.D2)
PIXELS_NUM = 7 #灯数

np = NeoPixel(NEOPIXEL_PIN,PIXELS_NUM)
html='https://mc.dfrobot.com.cn/thread-311681-1-1.html'

tem_num=0
np.clear()
oled.fill(0) #全部填充熄灭,清屏
oled.show() #显示生效
while(1):
res = requests.get(html)
res.encoding = 'utf-8'
bs = BeautifulSoup(res.text,"html.parser")
pl_list=bs.find_all(id=re.compile("recommendv_add"))#寻找id="recommendv_add"

bs2 = BeautifulSoup(str(pl_list),"html.parser")#寻找浏览个数所在“span”
data=bs2.span.text.strip("浏览")#去除“浏览”
print(pl_list)

if tem_num==0:#判断浏览量是否有增加
   tem_num=data
if data>tem_num:   
      tem_num=data
      #因暂时编译有错误,不显示中文,暂时用以下英文“点赞”代替
      oled.text("Look it",8,8)
      oled.text(data,8,20) #指定位置显示文字,
      oled.show()#显示生效
      for j in range(60):#60灯亮红
          np=(255,0,0)
   
      time.sleep(3)
      oled.fill(0) #全部填充熄灭,清屏
      oled.show() #显示生效
      np.clear()
else:
    time.sleep(10)




pATAq 发表于 2021-12-19 17:11:45

这个好玩~

CPJ 发表于 2021-12-27 20:22:19

强哇强哇(๑•̀ㅂ•́)و✧

木子呢 发表于 2022-1-7 10:44:25

这个有趣欸,云天老师真是抓住了生活里好多细节~太赞了

云天 发表于 2022-10-19 10:21:23

from bs4 import BeautifulSoup
import re
import requests
import time

html='https://mc.dfrobot.com.cn/thread-314339-1-1.html'

tem_num=0

while(1):
res = requests.get(html)
res.encoding = 'utf-8'
bs = BeautifulSoup(res.text,"html.parser")
pl_list=bs.find_all(id=re.compile("recommendv_add"))#寻找id="recommendv_add"

bs2 = BeautifulSoup(str(pl_list),"html.parser")#寻找浏览个数所在“span”
data=bs2.span.text.strip("浏览")#去除“浏览”
print(pl_list)

if tem_num==0:#判断浏览量是否有增加
   tem_num=data
if data>tem_num:   
      tem_num=data

   
      time.sleep(0.2)
   
else:
    time.sleep(0.2)


三春牛-创客 发表于 2023-1-12 10:31:33

这个厉害

三春牛-创客 发表于 2023-1-12 10:32:45

不错啊!

三春牛-创客 发表于 2023-1-12 10:33:47

本帖最后由 三春牛-创客 于 2023-1-21 11:06 编辑

不错!!

云天 发表于 2023-1-12 13:49:48

三春牛-创客 发表于 2023-1-12 10:33
《隐藏代码》

悄悄,不要张扬{:7_221:}

花生编程 发表于 2023-1-13 11:02:35

厉害厉害

花生编程 发表于 2023-1-21 11:05:41

赞啊!!

三春牛-创客 发表于 2023-1-21 11:06:01

云天 发表于 2023-1-12 13:49
悄悄,不要张扬

哦。。。
页: [1]
查看完整版本: Mind+Python bilibili播放次数提醒灯