一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典
简历模板![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
没从B站上直接爬取,使用第三方库bilibili_api。
这是一个用Python写的调用Bilibili各种API的库,范围涵盖视频、音频、直播、动态、专栏、用户、番剧等。
使用video模块下面的两个方法,可以获取11月每天的视频弹幕。
首先需要获取 SESSDATA 和 CSRF(bili_jct) 的值。
谷歌浏览器可以通过下图查看,域名选择bilibili.com。
以点击量为排序,选取排行第一的视频获取弹幕。没想到马老师老早就火了,耗子尾汁。
点击排名第一的视频,然后在浏览器的访问栏获取BV号,BV1HJ411L7DP。
获取弹幕代码如下
from bilibili_api import video, Verify
import datetime
参数
verify = Verify(“你的SESSDATA值”, “你的bili_jct值”)
获取存在历史弹幕的日期列表
days = video.get_history_danmaku_index(bvid=“BV1HJ411L7DP”, verify=verify)
print(days)
获取弹幕信息,并保存
for day in days:
danmus = video.get_danmaku(bvid=“BV1HJ411L7DP”, verify=verify, date=datetime.date(*map(int, day.split(‘-’))))
print(danmus)
f = open(r’danmu.txt’, ‘a’)
for danmu in danmus:
print(danmu)
f.write(danmu.text + ‘\n’)
f.close()
得到结果
我大E了啊,没有闪。
使用jieba对弹幕数据进行分词处理
import jieba
def get_text_content(text_file_path):
‘’’
获取填充文本内容
‘’’
text_content = ‘’
with open(text_file_path, encoding=‘utf-8’) as file:
text_content = file.read()
数据清洗,只保存字符串中的中文,字母,数字
text_content_find = re.findall(‘[\u4e00-\u9fa5a-zA-Z0-9]+’, text_content, re.S)
text_content = ’ '.join(jieba.cut(str(text_content_find).replace(" ", “”), cut_all=False))
print(text_content)
return text_content
text_content = get_text_content(‘danmu.txt’)
选取马保国原版素材视频,小破站上有高清的。
大家自己去一下视频即可
参考网上的资料,运行如下代码即可下载B站视频。
from bilibili_api import video, Verify
import requests
import urllib3
参数
verify = Verify(“你的SESSDATA值”, “你的bili_jct值”)
获取下载地址
download_url = video.get_download_url(bvid=“BV1JV41117hq”, verify=verify)
print(download_url[“dash”][“video”][0][‘baseUrl’])
baseurl = ‘https://www.bilibili.com/video/BV1JV41117hq’
title = ‘马保国’
def get_video():
urllib3.disable_warnings()
headers = {
‘user-agent’: ‘Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36’,
‘Accept’: ‘text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,/;q=0.8,application/signed-exchange;v=b3;q=0.9’,
‘Accept-Encoding’: ‘gzip, deflate, br’,
‘Accept-Language’: ‘zh-CN,zh;q=0.9,en;q=0.8’
}
headers.update({‘Referer’: baseurl})
res = requests.Session()
begin = 0
end = 1024 * 1024 - 1
flag = 0
temp = download_url
filename = “./” + title + “.flv”
url = temp[“dash”][“video”][0][‘baseUrl’]
while True:
headers.update({‘Range’: ‘bytes=’ + str(begin) + ‘-’ + str(end)})
res = requests.get(url=url, headers=headers, verify=False)
if res.status_code != 416:
begin = end + 1
end = end + 1024 * 1024
else:
headers.update({‘Range’: str(end + 1) + ‘-’})
res = requests.get(url=url, headers=headers, verify=False)
flag = 1
with open(filename, ‘ab’) as fp:
fp.write(res.content)
fp.flush()
if flag == 1:
fp.close()
break
print(‘--------------------------------------------’)
print(‘视频下载完成’)
filename = “./” + title + “.mp3”
url = temp[“dash”][“audio”][0][‘baseUrl’]
while True:
headers.update({‘Range’: ‘bytes=’ + str(begin) + ‘-’ + str(end)})
res = requests.get(url=url, headers=headers, verify=False)
if res.status_code != 416:
begin = end + 1
end = end + 1024 * 1024
else:
headers.update({‘Range’: str(end + 1) + ‘-’})
res = requests.get(url=url, headers=headers, verify=False)
flag = 1
with open(filename, ‘ab’) as fp:
fp.write(res.content)
fp.flush()
if flag == 1:
fp.close()
break
print(‘音频下载完成’)
记得添加SESSDATA和CSRF(bili_jct)的值
PaddleSeg人像分割
基于百度AI Studio的项目
项目地址:https://aistudio.baidu.com/aistudio/projectdetail/1176398
首先下载解压安装PaddleSeg相关依赖包。
下载PaddleSeg
git clone https://hub.fastgit.org/PaddlePaddle/PaddleSeg.git
cd PaddleSeg/
安装所需依赖项
pip install -r requirements.txt
通常去「GitHub」上下载东西,速度都比较慢,可以使用加速链接。
这里的fastgit.org一加,下载速度就能从几十K飙升到几兆每秒。
新建文件夹
mkdir work/videos
mkdir work/texts
mkdir work/mp4_img
mkdir work/mp4_img_mask
mkdir work/mp4_img_analysis
新建一些文件夹,主要用来存放相关文件的。
这里可以将之前爬取到的视频和音频放置在videos中。
先对素材视频进行抽帧,就是获取视频每帧的图片。
def transform_video_to_image(video_file_path, img_path):
‘’’
将视频中每一帧保存成图片
‘’’
video_capture = cv2.VideoCapture(video_file_path)
fps = video_capture.get(cv2.CAP_PROP_FPS)
count = 0
while (True):
ret, frame = video_capture.read()
if ret:
cv2.imwrite(img_path + ‘%d.jpg’ % count, frame)
count += 1
else:
break
video_capture.release()
filename_list = os.listdir(img_path)
with open(os.path.join(img_path, ‘img_list.txt’), ‘w’, encoding=‘utf-8’) as file:
file.writelines(‘\n’.join(filename_list))
print(‘视频图片保存成功, 共有 %d 张’ % count)
return fps
input_video = ‘work/videos/Master_Ma.mp4’
fps = transform_video_to_image(input_video, ‘work/mp4_img/’)
一共是获取到了564张图片
然后使用PaddleSeg将所有的视频图片,进行人像分割,生成mask图片。
生成mask结果图片
python 你的路径/PaddleSeg/pdseg/vis.py \
–cfg 你的路径/work/humanseg.yaml \
–vis_dir 你的路径/work/mp4_img_mask
使用模型进行预测,其中humanseg.yaml文件是作者提供的,可以进行图像分割。
预训练模型deeplabv3p_xception65_humanseg,需下载解压安装放在PaddleSeg/pretrained_model下。
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!