简单的小爬虫

acfun

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

#抖音等短视频会将完整的视频进行切割导致我们需要一次性下载多个内容
import requests
from moviepy import *

headers={'user-agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0"}

num=0
while True:
video_num="{:05d}".format(num)
url = f"https://ali-safety-video.acfun.cn/mediacloud/acfun/acfun_video/0ab61fa7d4eba429-670fa7db61f7931de917554be349cec5-hls_720p_2.{video_num}.ts?pkey=ABDAeeoNREONEfQEei3dtFxC0HzltfdIhGn_IiBQ2YF8HK8jPvIK21gdyhS-iIybCTIRuhVz32vOj3BoD5BYESf9r8E0WOBQuMzavMgmwyFSajG7I0_tOvaHnb_CKCh-EzCg5GrHhjwq1IacPl7OYRcEvzff1UuQgSyYs_ueHSyM_K_uhvp-W5_EHNP-pV-BCsmDXQO4wnHLj5ahEec2U8wSYg6uxSWOmPMa-MNJrXVD7ZEVz0BjdNby9pTBNorHvHg&safety_id=AALKZ_9sQCk2ln3CG-BIiQxG"

res=requests.get(url,headers=headers)
if res.status_code==404:
break
open(f"素材/video{num}.ts","wb").write(res.content)
num+=1
print(f"now{num}")
print(f"total num:{num}")

video_list=[]
for i in range(num):
video=VideoFileClip(f"素材/video{i}.ts")
video_list.append(video)
final_video=concatenate_videoclips(video_list)
final_video.write_videofile("final.mp4")

b

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import requests
from moviepy import *
#视频的url
url="https://upos-sz-mirror08c.bilivideo.com/upgcxcode/72/71/855797172/855797172-1-100026.m4s?e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M=&uipk=5&nbs=1&deadline=1739121116&gen=playurlv2&os=08cbv&oi=2364553972&trid=84017219fc1945bf80705d1f620a4037u&mid=1501882219&platform=pc&og=hw&upsig=33dd84a3f0cc4bf125eb080e7a65c7bd&uparams=e,uipk,nbs,deadline,gen,os,oi,trid,mid,platform,og&bvc=vod&nettype=0&orderid=0,3&buvid=6572DB8E-0AB3-A9FB-467A-1E527D02706378569infoc&build=0&f=u_0_0&agrr=0&bw=31771&logo=80000000"
#构造header正常访问
user={'user-agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36 Edg/132.0.0.0",'referer':"https://www.bilibili.com/video/BV1wT411N7sV/?spm_id_from=333.337.search-card.all.click&vd_source=a3ddfd01f66e61227bb63f2a67289dbf"}
#连接
re=requests.get(url,headers=user)
#下载
open("v.mp4","wb").write(re.content)
#音频的url
url="https://xy111x39x16x138xy.mcdn.bilivideo.cn:8082/v1/resource/855797172_nb3-1-30280.m4s?agrr=0&build=0&buvid=6572DB8E-0AB3-A9FB-467A-1E527D02706378569infoc&bvc=vod&bw=16209&deadline=1739121116&e=ig8euxZM2rNcNbdlhoNvNC8BqJIzNbfqXBvEqxTEto8BTrNvN0GvT90W5JZMkX_YN0MvXg8gNEV4NC8xNEV4N03eN0B5tZlqNxTEto8BTrNvNeZVuJ10Kj_g2UB02J0mN0B5tZlqNCNEto8BTrNvNC7MTX502C8f2jmMQJ6mqF2fka1mqx6gqj0eN0B599M%3D&f=u_0_0&gen=playurlv2&logo=80000000&mid=1501882219&nbs=1&nettype=0&og=hw&oi=2364553972&orderid=0%2C3&os=upos&platform=pc&sign=9ddc26&traceid=trzvDbBXnBjEPp_0_e_N&uipk=5&uparams=e%2Cuipk%2Cnbs%2Cdeadline%2Cgen%2Cos%2Coi%2Ctrid%2Cmid%2Cplatform%2Cog&upsig=bfa804138124c2a3384e5fc5e5fac5e2"

re=requests.get(url,headers=user)

open("v.mp3","wb").write(re.content)
#现实访问结果
print(re.status_code)
#导入素材
video=VideoFileClip("v.mp4")
audio=AudioFileClip("v.mp3")
#视频添加音频
final=video.with_audio(audio)
#生成最终版本
final.write_videofile("final.mp4", codec="libx264", audio_codec="aac")