前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。
PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取
python免费学习资料以及群交流解答点击即可加入
开发工具
python 3.6.5pycharm
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
具体应该怎么操作,点击下方链接即可了解~嘿嘿嘿
python免费学习资料以及群交流解答点击即可加入