利用Fiddler中的FiddlerScript自动保存抖音PC网页版视频链接(相当于一个爬虫)

1,085 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

准备工具:
1.谷歌内核浏览器(这里选择360极速浏览器)
2.配置好的Fiddler一个

代码介绍:
首先可以改动的地方很多,我挑几个重要的改动地方

1.保存路径,记得要非中文,只能是路径


var path = "D:\\\\douyin\\\\"

2.自动刷新网页,可以屏蔽,或者修改刷新时间,比如10秒就填写10000,1000代表1秒,这里是5000也就是5秒

var _body = "<head><script>setInterval(function(){location.reload(true)},5000)</script>";
3.保存的内容,可以根据自己需要,比如我不想要作者,可以加两个//就是屏蔽,屏蔽之后就是绿色

saveHeaderBody(path,"作者名字:"+zuozhe)

  • 首先找到Fiddler中的FiddlerScript

  • 找到Go to 选择OnBeforeResponse 

 

  • 找到空白区域,放入代码
  • 代码片段1放入空白OnBeforeResponse的区域 

  • 代码片段2放入OnBeforeResponse的上面

  • 最后一定要点击Save script,一定要点击Save script,一定要点击Save script

  • 刷新抖音网址,切换到Fiddler中的log面板

 

\

​​ ​ 代码片段1

//不会安装或者定制联系QQ:2908436596
//抖音
if(oSession.fullUrl.Contains("https://www.douyin.com/")){
            var body = oSession.GetResponseBodyAsString();
            //reload中的true是强制刷新,fasle是缓存刷新 5000代表5秒,如果需要1秒就1000
            var _body = "<head><script>setInterval(function(){location.reload(true)},5000)</script>";
            oSession.utilReplaceInResponse("<head>",_body)
            
        }
        if(oSession.fullUrl.Contains("/aweme/v1/web/channel/feed/")){
            //保存路径,只能写非中文和目录
            var path = "D:\\douyin\\"
            try{
                //对返回数据解码
                oSession.utilDecodeResponse();
                //获取返回内容
                var body = oSession.GetResponseBodyAsString();
                //将文本转换为json类型
                var responseJSON = Fiddler.WebFormats.JSON.JsonDecode(body);
            
                FiddlerObject.log("=======================这一页的抖音视频信息=====================")
                //判断是否为JSON
                if((responseJSON.JSONObject=='System.Collections.ArrayList' || responseJSON.JSONObject=='System.Collections.Hashtable')&&body!='[]'&&body!='{}'){
                    for(var list in responseJSON.JSONObject["aweme_list"]){
                        //获取作者名字
                        var zuozhe = list["author"]["nickname"]
                        FiddlerObject.log("作者名字:"+zuozhe)
                        //保存为文本
                        saveHeaderBody(path,"作者名字:"+zuozhe)
                        
                        //获取主页链接
                        var zhuye = "https://www.douyin.com/user/"+list["author"]["sec_uid"]
                        FiddlerObject.log("作者主页链接:"+zhuye)
                        saveHeaderBody(path,"作者主页链接:"+zhuye)
                        
                        //获取视频标题信息
                        var title = list["desc"]
                        FiddlerObject.log("视频标题:"+title)
                        saveHeaderBody(path,"视频标题:"+title)
                        
                        
                        //获取视频下载地址
                        var videoUrl = list["video"]["play_addr"]["url_list"][1]
                        FiddlerObject.log("视频下载地址:"+videoUrl)
                        saveHeaderBody(path,"视频下载地址:"+videoUrl)
                        
                        
                
                    }
                
                }
                FiddlerObject.log("=======================这一页的抖音视频信息=====================")
            
            }catch (e){
            
                FiddlerObject.log("代码出现错误,错误原因:"+e)
            
            }
        }

代码片段2 ​

//保存抖音
    static function saveHeaderBody(textpath,body){
        //保存为文本
        //FiddlerObject.log("正在保存文本到:"+textpath);
        var fso;
        var file;
        try{
            //判断是否有这个文本,没有就创建
            if (!System.IO.Directory.Exists(textpath)){
                System.IO.Directory.CreateDirectory(textpath);
            }
            
            fso = new ActiveXObject("Scripting.FileSystemObject");
            //参数2为直接替换文本,8为追加
            file = fso.OpenTextFile(textpath+"douyin.txt",8 ,true, true);
            //写入文本
            file.writeLine(body);
            //关闭文件句柄
            file.close();
            return true;
        }catch(e){
            if(file!=null){
                file.close();   
            }
            FiddlerObject.log("保存文件出错,错误原因:"+e);
            return false;
        
        }
        //FiddlerObject.log("天天欧尼酱提示:保存文本成功!");         
        
    }