千家信息网

如何使用python对B站收藏夹按照视频发布时间进行排序

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要介绍了如何使用python对B站收藏夹按照视频发布时间进行排序的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何使用python对B站收藏夹按照视频发布时间进
千家信息网最后更新 2026年11月04日如何使用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安全错误 数据库的锁怎样保障安全 互联网是第几次科技革命的成果 华服互联网科技怎么样 山东特亿宝互联网科技有限公司 合肥互联网科技公司 贷财互联网科技 佰商互联网科技有限公司 互联网科技大会案例 新华互联网科技校企合作 隆华科技工业互联网 湖南诚度互联网科技有限公司 荆州市昕露互联网络科技有限公司 晓花互联网科技有限公司网址 互联网科技公司有风险吗 如何创新互联网科技 互联网金融科技元年 北京市互联网新科技 皮皮虾互联网科技有限公司 广东鹅鹅鹅互联网科技有限公司 三亚科技创新互联网基地 承德科技产业互联网平台 河南真二互联网科技有限公司 互联网科技的 科技制造互联网公司 互联网金融 科技 平安科技 互联网 四川狮子座互联网科技 浙江互联网科技研学营 威龙国际互联网科技公司 北京市互联网新科技 美国五大互联网科技公司市值多少
0