您的位置:首页 > 其它

快手批量下载视频方法

2017-11-03 23:46 651 查看
最新方法参见

http://blog.csdn.net/MuoYangoRen/article/details/79652431

最近玩快手,想批量下载某主播的全部视频,但网上貌似没有啥奏效的方法,而且还有一些用易语言写的程序,反正是要收费的吧,作为学计算机的,当然不会为这些软件买单,所以开始自己研究

首先说下需要的工具

1. Fiddler(抓包都用过这个吧)
2. 安卓模拟器(我用的是逍遥安卓,这里不是打广告,可用你喜欢的)


首先打开Fiddler

默认会给你设置个代理 端口8888

首先进入模拟器,设置WiFi,一般都是长点,再选择修改网络,把代理由“无”改为手动

主机名写10.0.3.2(这里需要注意的是,我这WiFi上面显示的IP地址是10.0.3.15,故设为10.0.3.2,若你显示的IP为A.B.C.D,则需设置为A.B.C.2)

代理端口默认8888,点击保存即可



再打开快手,登陆,进某主播主页前先点Fiddler下方控制台输入

cls


即清屏一下,如下图



然后点击主播头像,进入其主页面

这时候Fiddler基本上会出现如下图所示



注意Host值不一定,但URL一定要是

/rest/n/feed/profile2?


开头的

这时候右击这一项,标记,紫色(我觉得紫色显眼,你可以用自己喜欢的颜色)

再右击这一项,保存,作为本地文件打开

这时候桌面会多出来一个txt文件,里面存着的就是返回的json数据,这个后面会用到

继续往下拉模拟器端
4000
,让主播的其他视频显示出来,你会发现Fiddler上又会出现

/rest/n/feed/profile2?


开头的项,前面之所以标记就是怕你分不清是否已经将某一项返回的json数据保存,重复上述操作,保存json数据,标记(其实为了方便观察,可以点一下URL那里,让他按URL排序,这样新出现的项就会出现在标记的项下方)

一般一个json文件包含了30个作品的信息,下面开始对json文件进行操作,我们需要将其合并(我下载的主播有110个作品,也就是会下载4个json数据文件)

这里推荐用UltraEdit这款软件进行格式化json数据,并进行合并,当然记事本也可以完成,只不过比较麻烦,

json数据格式化后一般如下



其中的feeds是json数组,最多30个项,分别包含每个作品的信息,我们需要做的就是把4个json数据中的feeds数据进行整合

可以看到,格式基本如下

"feeds": [
{data1},
{data2},
……
{datan}
],


这里用data1,data2……datan代表一大堆数据,我们需要把4个文件的data按需整合到一起,注意每个数组间有“,”

做好之后,进行链接提取(下面给出的视频链接提取的方法,图片同理,我会加上注释)

我们用JavaScript进行json解析,简单的说,下面的代码,填上你整合好的json数据,再另存为.html就能运行了。

<html>
<body>
<h2>获取链接如下</h3>
<p>
<span id="Get_Url"></span>
</p>
<script type="text/javascript">
var json =json;//这里填入整合好的json数据替代我写的“json”,注意,不需要引号
str="",temp="";
var time=0;
for(var i=0;i<json.feeds.length;i++){
//document.write(json.feeds[i].main_mv_urls+"<br>");
if(json.feeds[i].main_mv_urls==undefined)
{
}
else{
temp=json.feeds[i].main_mv_urls[0].url;
var temps= new Array();
temps=temp.split("8z");
str+=temps[0]+"8z.mp4<br>";
time++;
}
}
document.write(str+"<br>"+time);
</script>
</body>
</html>


最后给上效果图



图片肯定经过了处理,有什么问题和建议的的可以评论讨论下

笔者才疏学浅,难免有疏漏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: