安卓网页视频抓取工具(本文仅供参考学习,禁止用于任何形式的商业用途,自行承担责任)

优采云 发布时间: 2022-04-09 22:46

  安卓网页视频抓取工具(本文仅供参考学习,禁止用于任何形式的商业用途,自行承担责任)

  准备工作:(1),手机(Android和ios)/Android模拟器,今天主要基于Android模拟器,操作流程相同。(2),抓包工具:Fiddel下载)地址) : () (3), 编程工具: pycharm(4), 安装在Android模拟器上抖音(逍遥安装模拟器)一、fiddler在tools的options中配置,选中如图所示的框,然后单击操作...

  

  大家好,我是建筑师,一个会写代码,会背诗的建筑师。今天就来说说fiddler抢视频地址(视频编辑),希望能帮助大家提高!!!

  本文仅供参考和学习,禁止以任何形式用于商业目的。

  准备好工作了:

  (1),手机(安卓和ios)/安卓模拟器,今天主要以安卓模拟器为主,操作流程是一样的。

  (2),抓包工具:Fiddel 下载地址:()

  (3),编程工具:pycharm

  (4),安装在安卓模拟器上(MEYAO安装模拟器)

  一、提琴手配置

  在工具的选项中,勾选如图所示的复选框,点击操作,选择信任根证书。

  

  配置远程链接:

  选择允许监控远程链接,端口可以随意设置,只要不重复,默认8888

  

  然后:重启提琴手!!!此配置将生效。

  二、安卓模拟器/手机配置

  首先查看机器的IP:在cmd中输入ipconfig,记住这个IP

  

  确保手机和电脑在同一个局域网中。

  手机配置:配置连接的WiFi,代理选择手动,然后如上图输入ip端口号为8888

  模拟器配置:在设置中长按连接的wifi,选择manual作为代理,然后输入ip端口号如上图为8888

  

  

  设置好代理后,在浏览器中输入你设置的ip:port,比如10.10.16.194:8888,就会打开fiddler页面。然后点击fiddlerRoot证书安装证书,否则手机会认为环境不安全。

  证书名称可以任意设置,可能还需要设置锁屏密码。

  

  接下来,您可以在 fiddler 中抓取手机/模拟器软件的软件包。

  三、捕获数据包

  打开应用,观察fiddler中的所有包

  有一个包,包类型是json(json是网页返回的数据,具体是百度),主机地址如图,包大小一般不小,这个是视频包。

  

  点击这个json包,在fidder右侧,点击decode,我们将解码视频包的json

  

  解码后:点击awesome_list,其中每个大括号代表一个视频,每次加载一点,看完预加载的再加载一些。

  

  Json是一个字典,我们的视频链接在:aweme_list,在每个视频下video下play_addr下的url_list中,一共有6个url,都是一模一样的视频,可能是为了应对不同的环境,但一般都是第一个3个或4个链接的视频不容易出问题,复制链接,粘贴到浏览器中就可以看到视频了。

  

  接下来解决几个问题,

  1、视频数量,每个包就这么多视频,怎么抢更多?

  这时候需要用模拟器的模拟鼠标翻页,让模拟器不停的翻页,这样json包才会不断出现。

  

  2、如何在本地保存json以供使用

  一种方法是手动复制粘贴,但这非常低。

  所以我们使用fidder自带的脚本,在里面添加规则,刷出视频json包时自动保存json包。

  自定义规则包:

  提取码:7z0l

  if (oSession.uriContains("https://api-eagle.amemv.com/aweme/v1/feed/")){

var strBody=oSession.GetResponseBodyAsString();

var sps = oSession.PathAndQuery.slice(-58,);

//FiddlerObject.alert(sps)

var filename = "C:/Users/HEXU/Desktop/数据爬取/爬取资料/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();

}

  只听到建筑师办公室传来建筑师的声音:

  胡靖宇要照顾吗?穷人怎么逃?加了顾友梅的罪孽,虽然圣人还是个病夫。谁将向上或向下匹配?

  单击规则脚本并放置自定义规则,如图所示:

  

  这个脚本有两点需要修改:

  (1)第一行的网址:

  这是从视频包的 url 中提取的。某音频会不定时更新这个url,所以不能使用就必须更新:

  比如现在的和昨天的不一样,记得修改。

  

  (2)路径,也就是我设置json包保存的地址,必须自己修改,并创建文件夹,修改后记得保存。

  

  打开并设置好模拟器和脚本后,稍等片刻,就可以看到文件夹中保存的包:

  

  四、爬虫脚本

  接下来在pycharm中编写脚本获取json包中的视频链接:

  指导包:

  导入操作系统,json,请求

  迷彩头:

  headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, 像壁虎)Chrome/72.0.3626.119 Safari/537.36'}

  逻辑代码:

  

  影响:

  

  源代码:

  此代码由Java架构师必看网-架构君整理

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('C:/Users/HEXU/Desktop/数据爬取/爬取资料/raw_data/') #获取文件夹内所有json包名

count = 1 #计数,用来作为视频名字

for videos in videos_list: #循环json列表,对每个json包进行操作

a = open('./爬取资料/raw_data/{}'.format(videos),encoding='utf-8') #打开json包

content = json.load(a)['aweme_list'] #取出json包中所有视频

for video in content: #循环视频列表,选取每个视频

video_url = video['video']['play_addr']['url_list'][4] #获取视频url,每个视频有6个url,我选的第5个

videoMp4 = requests.request('get',video_url,headers=headers).content #获取视频二进制代码

with open('./爬取资料/VIDEO/{}.mp4'.format(count),'wb') as f: #以二进制方式写入路径,记住要先创建路径

f.write(videoMp4) #写入

print('视频{}下载完成'.format(count)) #下载提示

count += 1 #计数+1

  今天文章结束,感谢阅读,Java架构师必看,祝你升职加薪,年年好运。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线