前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
开发工具
- python 3.6.5
- pycharm
import requests
import re
相关模块可pip安装
确定目标网页
说实话看这个界面有丢丢像Youtube,上面有一些博主做的视频~今天就爬它了
分析网页找到视频地址
1、点击一个视频,F12打开开发者工具,在XHR里面可以找到一个media开头的数据包,media的意思就是媒体
paly_info
里面的URL,和一般的视频地址还是很相似的,可以复制链接打开看一下
果然是视频地址,但是这个时候又出现了一个问题,那就是这个视频只有画面,没有音频~
音频地址和视频地址分开了
慢慢往下翻找过去就可以发现音频地址就下面~
视频和音频地址都找到,那么就要分析这个接口地址应该怎么样获取了
https://krcom.cn/aj/dash/media?media_ids=2358773:4554544017768456&protocols=dash&watermarks=krcom
多找几个视频就可以发现接口数据URL只是 media_ids
这个参数的变化而已,恰好这个参数又是视频所对应的ID值
那么问题来了,酷燃视频这个网站并不是静态网站,按道理来说动态数据加载的话,在 network
里面的 XHR
也应该是有相对应的数据地址的呀
如上图所示,可以发现并没有数据接口, 那应该怎么找呢?
当往下滑的时候可以发现,这个网站是瀑布流的数据加载,那我就把前面的ALL 所有数据都清空,然后往下滑,这样出现新的数据加载,就会出现数据地址!
如上图所示,当往下滑的时候就出现了一个数据,可以发现数据里面包含了vid值,这个就是视频的id值,同样的找到了地址,总不能只是爬取一页数据吧,所以还是需要分析URL地址的变化
https://krcom.cn/aj/hot/loadingmore?ajwvr=6&cursor=20;2020102015&YmdH=&__rnd=1603180127937
上面已经说多了,想要知道URL地址的变化,那么就多找几个地址对比一下就指导
通过对比后可以指导 cursor=20
是改变的是从0开始没20个视频跳转一次,一切的一切都分析好了~
分析网页是从尾到头
写代码就是从头到尾了
单页爬取完整代码
import pprint
import requests
import re
def download_video(title, url):
filename_video = 'D:\\python\\demo\\酷燃视频\\短视频\\' + title + '.mp4'
response_video = requests.get(url=url)
with open(filename_video, mode='wb') as f:
f.write(response_video.content)
def download_mp3(title, url):
filename_mp3 = 'D:\\python\\demo\\酷燃视频\\短视频\\' + title + '.mp3'
response_mp3 = requests.get(url=url)
with open(filename_mp3, mode='wb') as f:
f.write(response_mp3.content)
for page in range(0, 101, 20):
url = 'https://krcom.cn/aj/hot/loadingmore?ajwvr=6&cursor=0;2020102014&YmdH=&__rnd=1603176486876'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
response = requests.get(url=url, headers=headers)
html_data = response.text.encode('utf-8').decode('unicode_escape')
urls = re.findall('vid=(.*?)\"', html_data, re.S)
titles = re.findall('<h3 class="V_autocut_2l">(.*?)<', html_data, re.S)
data = zip(urls, titles)
for i in data:
vid = i[0]
title = i[1]
page_url = 'https://krcom.cn/aj/dash/media?media_ids={}&protocols=dash&watermarks=krcom'.format(vid)
response_2 = requests.get(url=page_url, headers=headers)
html_json = response_2.json()
video_url = html_json['data']['list'][0]['details'][1]['play_info']['url']
mp3_url = html_json['data']['list'][0]['details'][-1]['play_info']['url']
download_video(title, video_url)
download_mp3(title, mp3_url)
print(title)
视频和音频都下载好了~
如果想要把音频和视频合并成一个视频,就需要用到一个工具 FFmpeg
具体应该怎么操作,点击下方链接即可了解~嘿嘿嘿