A站(ACFun)爬虫爬取并播放、下载视频(JAVA)

本文介绍了如何使用vlc、ffmpeg和phantomjs来爬取并播放、下载A站(ACFun)的视频。A站采用ajax异步返回视频分片,通过分析发现分片位于m3u8文件中。利用phantomjs模拟浏览器获取m3u8,再用vlc播放或ffmpeg转换为mp4。详细代码和git源码可在GitHub项目VideoCrawler查看。
摘要由CSDN通过智能技术生成

 本文使用的工具有vlc+ffmpeg+phantomjs,git源码:https://github.com/GethinWang/VideoCrawler

 

  一般视频网站的视频地址暴露的方式有两种:

1、html直接暴露

2、通过ajax异步返回。

  A站使用的方式是第二种。针对第一种方式,直接使用jsoup就可以解析出视频地址,但是大部分网站都不会采取这种方式,而是选择第二种。

  进入浏览器按下f12(这里我使用firefox)

  

 

 

   可以看到,传输的ts分片。这些分片是一块块小视频,大概只有几秒左右,但是这些视频能够拼接成一个完整的视频地址。而这些视频地址的地址其实被存放在一个m3u8的文件中,但通过浏览器没办法直接看到m3u8文件,因此这里使用phantomjs。

这是一款没有界面的模拟浏览器,可以模拟浏览器获取ajax请求,通过分析,可以看到返回结果中有m3u8文件。

 

 

 因此,我们可以拿到m3u8文件,然后使用vlc就可以进行播放,也可以使用ffmpeg将m3u8文件转换成mp4文件。

   播放器效果如上。

 

  ffmpeg合并m3u8文件命令为

String exec = rootPath + "/ffmpeg.exe -i \"" + url + "\" -vcodec copy -acodec copy -absf aac_adtstoasc " + output;

 

  这两款软件我都是使用java代码调用exe执行的。

 

  phantomjs核心代码如下:

1

2

3

4

5</

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值