還是很久之前寫(xiě)的爬蟲(chóng),爬取某站的視頻,因?yàn)槟痴镜囊曨l和音頻是分開(kāi)的,所以最后還需要合成在一起。
某站的舞蹈區(qū)大家都知道有很多的黑絲、白絲。嗯。。。都懂的,所以,下載下來(lái)被窩里偷偷看。
詳細(xì)解釋都在注釋區(qū)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-528709.html
大家爬取的時(shí)候要注意延時(shí)一段時(shí)間,某站的訪問(wèn)量是很大。太快爬取會(huì)被封的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-528709.html
import requests
from fake_useragent import UserAgent
import jsonpath
import re
import os
import time
# 請(qǐng)求頭
headers = {"User-Agent": UserAgent().random,
"referer": "你自己的refer"}
# 創(chuàng)建存放視頻的文件夾
if not os.path.exists("創(chuàng)建的文件夾名"):
os.mkdir("創(chuàng)建的文件夾名")
# 更改文件路徑
os.chdir(r"你想要存放的路徑")
# # 視頻列表頁(yè)url
for i in range(1, 3):
# 因?qū)徍说脑?,接口不能放出?lái),大家可以自行找找接口,加上即可食用
# 獲取up主的視頻列表接口。mid=后面的一串?dāng)?shù)字更改為其他up主的,即可爬取其他up主的視頻列表頁(yè)
url = "up主的視頻列表接口"
time.sleep(0.5)
response = requests.get(url, headers=headers).json()
# 解析網(wǎng)頁(yè)
bvid = jsonpath.jsonpath(response, "$..bvid")
# 拼接網(wǎng)址
link = "某站的網(wǎng)址后加上 /video/ 即可"
detail_url = [link + i for i in bvid]
# 循環(huán)下載
for url_link in detail_url:
time.sleep(0.3)
res = requests.get(url_link, headers=headers).text
# 提取視頻名
title = re.findall(r'class="video-title tit">(.*?)</h1>', res)
title = [re.sub("/", "", i) for i in title]
# 提示視頻
str = re.findall('<script>window.__playinfo__=(.*?)</script>', res)[0]
vid = re.findall(r'"video":\[{"id":\d+,"baseUrl":"(.*?)"', str)
# 提取音頻
aud = re.findall(r'"audio":\[{"id":\d+,"baseUrl":"(.*?)"', str)
# 下載視頻音頻
for n, v, a in zip(title, vid, aud):
vid_res = requests.get(url=v, headers=headers).content
aud_res = requests.get(url=a, headers=headers).content
print("Downloading", n)
with open(f'{n}.mp4', "wb") as f:
f.write(vid_res)
with open(f'{n}.mp3', "wb") as f:
f.write(aud_res)
# 因?yàn)樵撜臼菍⒁纛l和視頻分開(kāi)的,所以需要將下載視頻音頻進(jìn)行合成為一個(gè)完成的視頻。
os.system(f'ffmpeg.exe -i {n}.mp4 -i {n}.mp3 -c copy {n + " new"}.mp4')
到了這里,關(guān)于黑絲,白絲,全都要。某站的視頻爬取加合成的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!