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)
这个好玩~ 强哇强哇(๑•̀ㅂ•́)و✧ 这个有趣欸,云天老师真是抓住了生活里好多细节~太赞了 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-21 11:06 编辑
不错!! 三春牛-创客 发表于 2023-1-12 10:33
《隐藏代码》
悄悄,不要张扬{:7_221:} 厉害厉害 赞啊!! 云天 发表于 2023-1-12 13:49
悄悄,不要张扬
哦。。。
页:
[1]