嗨喽~大家好呀,这里是魔王呐 ❤ ~!
首先澄清一下,我用Python收集这些视频,绝不是想做别的什么,
真的只是用来做动态壁纸,大家不要误会!我不是那样的人~
这样的不过份吧
第三方模块
内置模块
如何安装python第三方模块:
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
在pycharm中点击Terminal(终端) 输入安装命令
发送请求, 对于视频播放详情页url地址发送请求
获取数据, 获取网页源代码 <获取服务器返回response响应数据>
解析数据, 提取我们想要数据内容
发送请求, 对于m3u8文件url发送请求
获取数据, 获取服务器返回response响应数据
解析数据, 提取所有ts文件内容 <视频片段url>
保存数据, 保存视频内容到本地
多个视频采集
多页数据采集
根据关键词视频下载
根据关键词视频下载
import time
import requests # 数据请求模块
import re # 正则表达式模块
import json
import pprint
for page in range(3, 29):
print(f'正在采集第{page}页的数据')
time.sleep(1)
link = 'https://www.****.cn/u/29946310'
data = {
'quickViewId': 'ac-space-video-list',
'reqID': page+1,
'ajaxpipe': '1',
'type': 'video',
'order': 'newest',
'page': page,
'pageSize': '20',
't': '1653659024877',
}
headers = {
'referer': 'https://***/u/29946310',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
}
response = requests.get(url=link, params=data, headers=headers)
# pprint.pprint(response.text)
ac_id_list = re.findall('atomid.*?:.*?"(\d+).*?"', response.text)
print(ac_id_list)
for ac_id in ac_id_list:
url = f'https://***/v/ac{ac_id}'
headers = {
'referer': f'https://***/u/{ac_id}',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
title = re.findall('<title >(.*?) - 弹幕视频网 - 认真你就输啦 \(\?ω\?\)ノ- \( ゜- ゜\)つロ</title>', response.text)[0]
html_data = re.findall('window.pageInfo = window.videoInfo = (.*?);', response.text)[0]
json_data = json.loads(html_data)
m3u8_url = json.loads(json_data['currentVideoInfo']['ksPlayJson'])['adaptationSet'][0]['representation'][0]['backupUrl'][0]
m3u8_data = requests.get(url=m3u8_url, headers=headers).text
m3u8_data = re.sub('#E.*', '', m3u8_data).split()
print(title)
print(m3u8_url)
可抗拒的原因所以地址我删了, 也有对应的视频教程,可以文章下方扫码免费领
兄弟们快去试试吧!
要成功,先发疯,下定决心往前冲!
学习是需要长期坚持的,一步一个脚印地走向未来!
未来的你一定会感谢今天学习的你。
—— 心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦