需求 前段時間面試,被問到設計模式。說實話雖然瞭解面向對象、多態,但突然被問到設計模式,還要說清解決什麼問題,自己是有些懵的,畢竟實習主要工作是在原項目基礎進行CRUD,自己還是沒有深度思考,所以只能簡單介紹自己知道的簡單工廠模式等。趁著回家這段假期,充電學習一下Go設計模式! 學習資料 B站搜索一 ...
需求
前段時間面試,被問到設計模式。說實話雖然瞭解面向對象、多態,但突然被問到設計模式,還要說清解決什麼問題,自己是有些懵的,畢竟實習主要工作是在原項目基礎進行CRUD,自己還是沒有深度思考,所以只能簡單介紹自己知道的簡單工廠模式等。趁著回家這段假期,充電學習一下Go設計模式!
學習資料
B站搜索一下,突然發現劉丹冰老師更新了設計模式課程。因為前面學習Go基礎也是通過書籍和劉丹冰老師的視頻學習。
設計模式鏈接如下:
由於家裡網路和個人學習習慣,喜歡把視頻下載下來學習,會更專註下來。
上次下載忘了寫博客,這次專門記錄一下,方便下次操作。
問題
you-get是下載利器,然而bilibili的合集下載會有些問題,具體原因沒有仔細分析,個人懷疑是獲取不了合集下的所有視頻鏈接。所以本文通過八爪魚進行獲取視頻鏈接,再通過python寫腳本,you-get下載全部視頻。
工具準備
個人是Mac電腦,具體軟體或環境:
- 八爪魚軟體
- Python 3.8.9, 安裝pandas包
- you-get
(以上環境都是以往安裝的,網上也有不錯的安裝教程,這裡就不贅述了。)
下載步驟
1. 八爪魚將合集視屏的鏈接收集起來並下載
軟體操作比較簡單,主要步驟:
- 建立新任務,即添加鏈接,點擊開始採集
- 根據網頁分析結果進行採集和保存
- 導出採集的視頻鏈接數據為excel
2. 對合集中所有視頻鏈接進行讀取和you-get下載
excel命名為bilibili.xlsx
下麵是簡單的腳本下載
#-- coding: utf-8 --
# 下載bilibili合集視屏
# 首先八爪魚爬取網頁所有視頻地址,保存到excel
# 然後python讀取excel文件,到字典中
# 最後迴圈便利,使用you-get下載
import pandas as pd
import os
def readExcel(file):
df = pd.read_excel(file, sheet_name = "Sheet1") # sheet_name不指定時預設返回全表數據
return df["title"] # 返回表格中title列,此列存放視頻的地址
def download(address): # 下載
print(address) # 測試
for i in address:
print("-------")
os.system("you-get -o ./bilibili "+ str(i)) # -o後面是保存路徑,根據個人需求更改
if __name__ == "__main__":
file_path = r"./bilibili.xlsx"
videos = readExcel(file_path)
download(videos)
總結
解決方案比較簡單,也沒考慮太多的優化。暫時夠用,若有更好改進,歡迎評論和指出!