如何使用python对B站收藏夹按照视频发布时间进行排序
发表于:2025-11-16 作者:千家信息网编辑
千家信息网最后更新 2025年11月16日,这篇文章主要介绍了如何使用python对B站收藏夹按照视频发布时间进行排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用python对B站收藏夹按照视频发布时间进
千家信息网最后更新 2025年11月16日如何使用python对B站收藏夹按照视频发布时间进行排序
这篇文章主要介绍了如何使用python对B站收藏夹按照视频发布时间进行排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用python对B站收藏夹按照视频发布时间进行排序文章都会有所收获,下面我们一起来看看吧。
程序的作用
因为我们看到的视频大部分都是通过推荐得到的,而推荐的视频大部分都是刚发布不久,因此大部分收藏的视频的顺序也基本是按照视频发布的顺序来的。那么通过程序对收藏夹中的视频按照发布时间重新排序,那么就和我们收藏视频的顺序几乎一致了。
机理
利用b站的API获取收藏夹中视频的视频的编号,用python中的request库获得视频对应网页的html,之后利用正则表达式得到视频发布的时间。将发布时间和视频的编号绑定,按照视频发布时间从小到大排序,再次利用b站的API将视频收藏到指定收藏夹。
出现的问题
b站视频的av号在八位以下的时候是按照视频发布顺序编排的,但是当到达九位的时候就不是按照发布顺序编排的了,因此只能通过访问视频主页来得到视频发布时间。
b站的API如果长时间比较高频率的访问会出现错误码,因此每次调用API之后都sleep了一下。
中间程序可能因为各种原因挂掉,因此在中间加入了储存中间状态的功能,否则每次挂掉都要重新爬速度非常慢。
使用方法
在创建Sort类对象时,将userAgent,cookie,fid,toFid,csrf传入类的构造函数中,之后调用类中的sortVideos()方法即可完成排序。
import requests, json, time, re, datetime, randomclass WriteLog(object): def __getCurrentTime(self): return str(time.ctime(time.time())) def writeFile(self, fileName, l): with open(self.__getCurrentTime() + fileName, 'w') as f: for i in l: f.write(str(i) + '')class Sort(WriteLog): def __init__(self, fid, toFid, csrf, userAgent, cookie, MinSleepTime=5, MaxSleepTime=10): self.MinSleepTime = MinSleepTime self.MaxSleepTime = MaxSleepTime self.fid = str(fid) self.toFid = str(toFid) self.csrf = csrf self.DeadVideo = [] self.headers = {'User-Agent': userAgent, 'cookie': cookie} def __Sleep(self): sleepTime = random.randint(self.MinSleepTime, self.MaxSleepTime) time.sleep(sleepTime) def __getAllVideoId(self): print('Start get all video ID') fid = self.fid res = [] cnt = 0 for i in range(100): if i == 0: continue url = 'https://api.bilibili.com/x/v3/fav/resource/list?media_id=' + fid + '&pn=' + str(i) + '&ps=20&keyword=&order=mtime&type=0&tid=0&platform=web&jsonp=jsonp' html = requests.get(url=url, headers=self.headers) te = json.loads(html.text) te = te['data']['medias'] if te != None: for j in te: res.append(j['id']) print('num: ', cnt, ' videoID: ', j['id']) cnt = cnt + 1 self.__Sleep() else: break print('Finish get all video ID, in total %d' % (len(res))) return res def __addVideoToFavorite(self, vid): fid = self.toFid csrf = self.csrf url = 'https://api.bilibili.com/x/v3/fav/resource/deal' data = { 'rid': vid, 'type': '2', 'add_media_ids': fid, 'del_media_ids': '', 'jsonp': 'jsonp', 'csrf': csrf, 'platform': 'web', } requests.post(url=url, data=data, headers=self.headers) print('finish add video %s to folder %s' % (vid, fid)) def __getVideoPostTime(self, vid): vid = str(vid) url = 'https://www.bilibili.com/video/av' + vid text = requests.get(url).text ''' data-vue-meta="true" itemprop="uploadDate" content="2021-04-07 23:29:21">关于"如何使用python对B站收藏夹按照视频发布时间进行排序"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"如何使用python对B站收藏夹按照视频发布时间进行排序"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
视频
时间
收藏夹
排序
顺序
大部分
知识
程序
内容
方法
时候
篇文章
推荐
一致
从小到大
主页
从小
价值
作用
使用方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于软件和网络安全的书
达梦安全数据库启动数据库
淘宝服务器主机设在哪里
如何提高网络安全意识建议
广州鼎隆网络技术公司怎么样
初中学生网络安全问题
农商行国家网络安全宣传周
数据库的数据的组织形式
服务器取钱安全么
数据库可以建几个
刀塔自走棋服务器怎么回事
网络安全与计算机技术
三级下载软件开发
心动网络安全ppt
nginx搭建api网关服务器
quartz扫描数据库任务
符文之地传说怎么改服务器
网络安全数据安全政策
海南耀天网络技术公司
软件开发流程第一步
大数据量怎么入数据库
防沉迷网络安全问题黑板报
华为协议软件开发
方舟生存进化服务器如何快速挖铁
网络安全教育英语
造假软件开发者判刑
欧柏泰克软件开发
flex服务器
开展网络安全检查工作新闻稿
ssh网络安全协议