2024年马老师:你不讲武德,居然用python使出闪电五连鞭,2024-2024历年网易跳动Python面试真题解析

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 21
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值