python腳本處理下載的b站學習視頻


作為常年在b站學習的我,一直以來看到有興趣的視頻,從來都是點贊收藏下載三連,但是苦於我那小鋼炮iphone se屏幕大小有限,看起視頻實在費勁,決定一定要找個下載電腦上下載b站視頻的方法,以前用過碩鼠,可惜速度不行,批量解析也會出些問題,就沒用了,后來也用過一些其他小工具,效果都不咋樣,今天真是發現神器了,還支持迅雷下載,速度6M多美妙,真是美滋滋😄

下面重磅教程來襲:

一、找到視頻的播放地址,如“七周成為數據分析師”,此視頻地址為:https://www.bilibili.com/video/av46196018

二、修改原地址為:https://www.kanbilibili.com/video/av46196018,即在“bilibili”前加“kan”,搜索該地址

三、在新的網頁如下位置點擊獲取地址

 

四、選擇視頻清晰度,然后加載出所有視頻列表

五、在選項欄中選擇批量下載,拿到下載地址

六、使用迅雷下載

據說迅雷極速版更好用?

鏈接:https://pan.baidu.com/s/1TxMi0z-HMBTiglqycAvAbQ
提取碼:aihf

downloading......

downloading......

downloading......
待下載完成,發現視頻標題都變成數字了,而不是原來含有視頻信息的標題!

分析可知,盡管都是數字,但它們都是有規律的,這些數字從小到大排列正好是原來的標題順序,所有解決辦法就是拿到原來的標題列表,將其和下載到的標題小到大順序排列的列表進行一一組合,最終得到的每一個組合就包含下載的數字標題名字和含視頻信息的標題名字,那么我們將其一一重命名即可,具體操作如下:

七、利用開發者工具,定位到視頻列表,獲取列表css元素

八、根據該列表的html+css信息,在console控制台獲取含視頻信息的標題名字列表

復制內容到python項目下7week.txt文檔

九、可見含視頻信息的標題名字列表仍有多余信息,如“P11.1:為什么需要七周” 變為 “1:為什么需要七周”更好,編寫formatter.py腳本,對7week.txt每行內容替換字符串。

formatter.py:

# -*- coding:utf-8 -*-
# Author: Tarantiner
# @Time :2019/4/26 20:26

import re

with open('7week.txt', 'r+', encoding='utf-8')as f:
    name_lis = []
    for index, line in enumerate(f.readlines()):
        name = re.sub('P\d+\.\d+ ?', '%s' % (index+1), line)
        name_lis.append(name)
    f.seek(0)
    f.truncate()
    for name in name_lis:
        f.write(name)

十、進行重命名工作,獲取下載目錄所有文件,os.listdir()是列表形式,並且測試發現os.listdir()得到的列表中的文件名順序正好是真正的視頻順序,就不用我對它進行重新排序了,接下來用zip函數打包下載的文件名列表和7week.txt文件中真正文件名列表,然后逐一重命名文件就好了。

renamer.py:

# -*- coding:utf-8 -*-
# Author: Tarantiner
# @Time :2019/4/26 20:54

import os


file_path = 'F:/迅雷下載/b站7周成為數據分析師/'
os.chdir(file_path)
files = os.listdir()
names = open('C:/Users/Chen/Desktop/rename_files/seven_week/7week.txt', 'r', encoding='utf-8').readlines()
file_lis = list(zip(files, names))   # [('old_name', 'new_name'), ( , ) ...]
for file in file_lis:
    os.rename(file[0], file[1].strip() + '.flv')

項目結構:

最終還是有個別文件格式不正確,手動重命名一下就好了。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM