如何使用python对B站收藏夹按照视频发布时间进行排序
发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要介绍了如何使用python对B站收藏夹按照视频发布时间进行排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用python对B站收藏夹按照视频发布时间进
千家信息网最后更新 2025年01月24日如何使用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安全错误
数据库的锁怎样保障安全
台州缘易网络技术有限公司
源码网络技术有限公司怎么样
如何做好网络安全工作教师
青岛和沐网络技术有限公司
视频管理服务器的设置
互联网科技装修图片
win7服务器pHp配置
分布式数据库访问系统
安全牛中国网络安全全景图
天津优米互联网科技
广流互联网科技随州
崇明区个人数据库服务商有哪些
互联网科技教育企业
腾云s2500双路服务器
武汉大学空间网络安全
网站服务器租用要求
计算机网络技术女生岗位
用户管理数据库设计
数据库二级缓存是什么意思
热爱祖国绘画软件开发
最成功的一件是软件开发
吉林友软件开发
嘉兴游戏软件开发创新服务
服务器远程授权管理
原神启动器切换服务器
ceph上跑数据库
五台山天气预报软件开发
软件开发售后服务年限
容桂网络安全价格
spss数据库建立