PC版哔哩哔哩新增「猜你喜欢」功能插件开发

需积分: 10 0 下载量 81 浏览量 更新于2024-11-13 收藏 18KB ZIP 举报
资源摘要信息:"本节内容将深入探讨针对PC版bilibili(哔哩哔哩)首页新增「猜你喜欢」功能的插件开发过程,同时也会涉及到JavaScript编程语言的基础知识。该插件的开发源于许多用户对于PC端缺少个性化推荐功能的抱怨和需求,开发者出于满足用户愿望和提升用户体验的目的,决定自主开发这样一款插件。" 知识点详细说明: 1. JavaScript编程语言 JavaScript是一种高级的、解释型的编程语言,它广泛应用于网页开发,主要负责网页中的动态效果和前后端的数据交互。由于其轻量级、事件驱动的特性,JavaScript成为开发浏览器插件(如bili-guessYouLike)的理想选择。它不仅可以处理用户界面事件,还可以发送HTTP请求、读取和修改DOM等,对于实现「猜你喜欢」的动态内容推荐系统是必不可少的技术之一。 2. 浏览器插件开发 浏览器插件(也称为浏览器扩展或浏览器附加组件)是一种可以改变或增强浏览器功能的软件模块。这类插件大多使用Web技术开发,比如HTML、CSS和JavaScript。bili-guessYouLike插件的开发也不例外,它通过JavaScript来修改或增加bilibili网页的默认行为或视觉效果,从而实现了PC端首页的个性化推荐功能。 3.哔哩哔哩(bilibili)网站介绍 哔哩哔哩(简称B站)是一个年轻人的文化社区和视频分享平台,以ACG(动画、漫画、游戏)文化为核心特色,深受年轻群体喜爱。B站的首页原本提供大量视频内容供用户浏览,但这些内容可能并不符合每个用户的兴趣。因此,通过算法推荐用户可能喜欢的视频(即「猜你喜欢」),可以有效提高用户粘性和满意度。 4. 「猜你喜欢」功能的实现逻辑 「猜你喜欢」功能通常依赖于用户的浏览历史、观看偏好、搜索习惯等数据,通过算法分析用户的喜好,并预测用户可能感兴趣的其他内容。对于bili-guessYouLike插件,开发者需要获取用户在B站的行为数据,并利用这些数据来训练推荐算法,从而向用户推荐与他们历史行为相符合的视频内容。 5. 数据获取与处理 开发bili-guessYouLike插件的过程中,数据获取是一个关键步骤。这可能包括但不限于监听用户的浏览行为,获取用户浏览过的视频ID、观看时长、点赞、投币等信息。获取到数据后,需要进行数据清洗和预处理,以确保数据质量和算法的准确性。 6. 用户界面设计 插件在为用户带来「猜你喜欢」功能的同时,还需要考虑用户体验的其他方面。例如,用户界面的设计应该简洁、直观,让用户能够轻松地识别出哪些是推荐的视频,同时还能提供方便的交互操作。这通常需要开发者具备良好的前端开发能力和用户体验设计知识。 7. 插件测试与部署 在开发插件之后,一个重要的步骤是进行充分的测试,以确保插件在各种环境下都能稳定运行,且不会对原始网站的正常使用造成影响。测试包括但不限于功能测试、性能测试、安全测试等。测试无误后,插件就可以部署到浏览器的插件市场供用户下载使用。 8. 插件的维护与更新 即便插件成功部署,后续的维护工作也是必不可少的。随着用户需求的变化、网站功能的更新或者潜在的漏洞修复,开发者需要定期更新插件以保持其功能性和安全性。这涉及到对新版本的浏览器进行适配,以及根据用户反馈进行功能改进和优化。 总结来说,bili-guessYouLike插件的开发是一个涉及前端开发技术、数据分析、用户界面设计、软件测试等多方面技能的过程。通过该插件,用户可以在PC版bilibili首页享受到与移动端相类似的个性化视频推荐体验,提升浏览效率和内容满意度。对于开发者而言,这是一个锻炼技术、深入了解用户需求以及提升个人开发能力的好机会。

import re import subprocess import requests import json from pprint import pprint url = "https://www.bilibili.com/video/BV1fi4y1K7Na/?spm_id_from=333.1007.top_right_bar_window_default_collection.content.click&vd_source=4545a0e83c576b93b1abd0ca4e16ab4d" headers = { "referer": "https://www.bilibili.com/", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36", "cookie":"i-wanna-go-back=-1; _uuid=C106610D104-6D27-6584-66E1-FCDE2859156A75277infoc; FEED_LIVE_VERSION=V8; home_feed_column=5; buvid3=D2AE610A6-6EE7-B48E-10C51-9E8269B10C88776898infoc; header_theme_version=CLOSE; DedeUserID=1852701166; DedeUserID__ckMd5=ac9474243bdd3627; nostalgia_conf=-1; CURRENT_PID=e16a0380-e1cd-11ed-a872-2f97008834b2; rpdid=|(k|k~u|)RY)0J'uY)kkl|m)m; b_ut=5; browser_resolution=1482-792; CURRENT_BLACKGAP=0; buvid_fp_plain=undefined; CURRENT_FNVAL=4048; b_nut=1683881044; hit-new-style-dyn=1; hit-dyn-v2=1; SESSDATA=3e3851ea%2C1704423625%2C1959b%2A72SteLEoaNhz8Q6ifKiYFGRpSBjpMp2TG-QWAao2iv2yR5ci81QOokmXevCx102rLpwUc9qgAAQgA; bili_jct=2ea1af9f8ae6f19867c8cd3dc1bfd047; fingerprint=dd5c1878758a4b317420b66dad49b677; b_lsid=97F1E5C5_1894440C9F1; buvid4=9D5A25A5-A648-0805-4C59-8178C4E4362B31067-023042319-0THAXXn9jKfRyf3rDh/fQA%3D%3D; buvid_fp=dd5c1878758a4b317420b66dad49b677; sid=7i4lnopc; bp_video_offset_1852701166=817021346575810700; PVID=1" } response = requests.get(url, headers=headers) name = re.findall('"title":"(.*?)"',response.text)[0].replace(' ','') html_data = re.findall('<script>window.__playinfo__=(.*?)</script>',response.text)[0] json_data = json.loads(html_data) #print(name) # print(html_data) # print(json_data) # pprint(json_data) audio_url = json_data['data']['dash']['audio'][0]['baseUrl'] video_url = json_data['data']['dash']['video'][0]['baseUrl'] # print(audio_url) # print(video_url) audio_content = requests.get(url=audio_url,headers=headers).content video_content = requests.get(url=video_url,headers=headers).content with open("D:\\study\\B站\\素材\\" + name + ".mp3", mode="wb") as audio: audio.write(audio_content) with open("D:\\study\\B站\\素材\\" + name + ".mp4", mode="wb") as video: video.write(video_content) cmd = f'ffmpeg -i D:\\study\\B站\\素材\\{name}.mp4 -i D:\\study\\B站\\素材\\{name}.mp3 -c:a aac -strict experimental D:\\study\\B站\\视频1080P\\{name}output.mp4' subprocess.run(cmd)

2023-07-13 上传