Crawl Dy

时间:2022-07-28
本文章向大家介绍Crawl Dy,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前言

抖音是一个很好的平台,森罗万象,大到央视新闻,小到普通老百姓日常。上面的活跃用户的粉丝数量,有如恒河沙数,也有如寥若晨星。

抖音的推荐算法会逐渐决定你将要看什么,滑稽吧?你的观看选择,从这个角度看,居然是他人决定,而不是自己去寻找?。自己去寻找的不好吗?人懒了吗?

本文建立抖音推荐算法的基础上,爬取一些自己喜欢的东西,当然是小姐姐了。一开口?就知道是老色批了,又在ghs,?‍✈️拷走。?这边前期刷抖音的时候,在一下小姐姐视频上停留时间过长,抖音app会自动判定你喜欢这类视频,或者在刷到漂亮小姐姐,点个like,后面还是会推送这类视频。于是不需要使用人脸判定接口了,麻烦。

先上结果图:

准备工作

  1. 一款安卓模拟器,我用的是夜神模拟器
  2. 抓包工具 fiddle
  3. python代码编辑器

详细过程

  1. 配置fiddle 打开fiddle,在option里设置如下

重启fiddler。

  1. 配置模拟器 配置网络,查看本机ip,为192.168.0.106

配置模拟器,保存。

配置证书:在浏览器中输入设置的ip:端口,我的是192.168.0.106:8888,就会打开fiddler的页面。然后点击fiddlerRoot certificate,安装证书。如果没有下面,重启一下fiddle。

点击以后开始下载,在任务栏点击安装,设置名称,设置锁屏手势。

  1. 打开抖音,如图所示,fiddle有些花眼。红框是需要抓取的进程数据。
  1. 于是定义显示规则,只显示这个process,不显示其他进程,在其他进程上右键,filter now ,hide’XXXXX’
  1. 分析抓包数据,我们需要找到json数据。在滑动抖音后,fiddle里面就一个json 包,还非常小,点开后啥数据也没有。

经过我百般探索,在模拟器抖音点击用户头像,就会有较大body 的json出现。

这个json数据包很大吧,打开分析吧。

  1. 打开后,仔细比较,这就是用户所有数据了。

仔细找找,在video里就能找到视频,把url_list里链接复制到浏览器就能够播放。

  1. 已经完成一大半了,接下来就是批量获取json数据,然后解析json数据中的video链接,下载到本地。 批量获取json数据,在fiddle定义script rule。如图所示,然后点击 save script。

下面是代码,fielname变量指向的目录D:/抖音/raw_data手动生成。

static function OnBeforeResponse(oSession: Session) {
        if (m_Hide304s && oSession.responseCode == 304) {
            oSession["ui-hide"] = "true";
        }
        if (oSession.uriContains("https://aweme.snssdk.com/aweme/v1/aweme/post/")||oSession.uriContains("https://api3-core-c-lf.amemv.com/aweme/v1/aweme/post/")){
            var strBody=oSession.GetResponseBodyAsString();
            var sps = oSession.PathAndQuery.slice(-58,);
            var filename = "D:/抖音/raw_data" + "/" + sps + ".json";  //目录需要手动去生成。
            var curDate = new Date();   
            var sw : System.IO.StreamWriter;  
            if (System.IO.File.Exists(filename)){  
                sw = System.IO.File.AppendText(filename);  
                sw.Write(strBody);  
            }  
            else{  
                sw = System.IO.File.CreateText(filename);  
                sw.Write(strBody);  
            }  	
            sw.Close();  
            sw.Dispose();  
        } 
    }

接下来,只需要在模拟器里滑动,点击用户,就可以看到在定义的目录里有很多json文件。

  1. 手动划肯定不得行,于是就需要像按键精灵一样的东西,于是乎,就可以用夜神模拟器里面的操作录制。需要注意的是,有的用户头像上会有直播,点进去会跳到用户直播界面,我也没得办法,可以点击左下方的@user按钮,但按钮位置不太固定。也不好用。 我的解决办法是深夜进行这个操作录制,那时没得人在直播。正常模拟点击即可。
  1. 解析json. 在D:/抖音/下新建crawl.py。 import os,json,requests headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36'} videos_list = os.listdir('D:/抖音/raw_data/') count = 0 # 统计下载视频数量 for videos in videos_list: json_data = open('./raw_data/{}'.format(videos),encoding='utf-8') try: content = json.load(json_data)['aweme_list'] title = content[0]['author']['nickname'] #小姐姐名称 for c in r'#/:*@#?"<>|/': title = title.replace(c,'') print(title,":可爱又美丽的我正在去往您的硬盘里n") if not os.path.exists('./VIDEO/'+title): os.makedirs('./VIDEO/'+title,) # 建立以小姐姐名称的文件夹 for video in content: video_name = video['desc'] for c in r'#/:*@#?"<>|/': video_name = video_name.replace(c,'') try: video_url = video['video']['play_addr']['url_list'][0] print(video_name) continue videoMp4 = requests.request('get',video_url,headers=headers).content with open('./VIDEO/{}/{}.mp4'.format(title,video_name),'wb') as f: f.write(videoMp4) print("可爱又美丽的我已经在硬盘了") count += 1 except: pass except: pass print('--------------------------------') print("一共{}有个在您的硬盘里呢".format(count)) 后记 这些小姐姐们,都是以自己美颜后的模样呈现在视频前,在视频前摆几个动作而已,没看到有啥子与众不同的才艺,或者说闪光点。又或者说,这才是我们大众喜欢的女性,不然怎么一个个的好几万like。人均校花?。 小姐姐们确实挺好看的,不过不太符合我的审美观。萝卜青菜,各有所爱。?希望每个人的另一半都是自己眼里最美的啦。 ?后面打算,基于这些小姐姐,做视频帧数切割,以及?切割。