很多小伙伴总是问我,数据来源怎么找啊,怎么抓包,其实很简单,多操作几遍就记住了。
今天咱们通过三个案例来展示一下
首先咱们进入目标网页,随便找一个视频,通过开发者工具抓包分析。
首先按F12或者点击右键选择检查,打开开发者工具,依次选择 network(网络面板) → AII (全部)
然后刷新网页,让当前网页内容重新加载出来。

以前是可以直接选择 media (媒体文件)就能看到了,现在不行了,所以说,互联网更新迭代很快,网站经常更新,技术也需要时刻准备更新,我们也是学习不能停,一停就落伍。

但是刷新后的数据太多,我们如何确定哪一条是咱们的目标呢?
以当前某牙为例, 视频改成了m3u8格式,它会把完整视频分成很多个视频片段,这些ts文件都是m3u8格式视频片段。

我们把URL复制到新窗口打开,它就直接把片段下载下来了。

我们完整的视频是2.26分,但是每一个片段只有几秒钟。

那么计算一下,平均一个五秒,2.26分差不多要17个视频,还得自己手动合并,多麻烦。
但是它有一个专门的m3u8格式的文件,保存了所有的ts文件内容。
我们直接点击左上角搜索框,直接搜索 m3u8 ,然后看到一个get开头的文件,点击它,再点击preview (预览数据) ,视频的标题等信息都可以看到。

找到这个 definitions 展开 ,m3u8的视频就在里面了,原画、超清、流畅。
可以看到,它也有完整的url地址在这,可以直接用。

我都注释一下吧

这是直播视频的数据查找方式
这三个案例的爬虫代码我都准备好了,点击蓝色字体自取
接下来看看微博视频
第一步详细介绍,后面就不做太多截图一一展示了,只展示大概流程了,所以如果忘了,建议多看看第一步的,当然,两个网站之间不一样的地方,我都会一一截图展示。
确定目标网址,打开一个视频播放页面。


有点过份暴露,这是我没想到的,简单的打个码。
按F12 打开开发者工具,点击network 点击Aii ,刷新网页。
然后此时发生了一件愉快的事情?
刷新一下视频不见了,于是我又去搜博主名字

啊这 ?
我太南了,算了 ,换一个吧…
编辑推荐的每一个都很给力,我先用第四个给你们展示吧,展示完,我再都去看一遍?

好了,咱们言归正传。
对于绝大部分网站来说,他的第一个数据包就是当前网页。除了一少部分特殊网址不一样。

今天的目标它的视频不一定在第一个网页源代码中,即使复制了url能进入,也还是不一定在。
因为有一些数据,它是会动态加载的,或者说不在同一个数据包里面。
第二种方法,我们把当前目标的标题复制到搜索框,然后回车,当然,也有可能搜不到。
第三种方法,我们直接点击 fetch/XHR 动态数据抓包,这里面是实时加载的。

我真的会谢,视频又没了…
算了,我再找新的吧。
我们可以看到,左边有那么多数据,那么谁才是我们需要的呢?

这时候需要我们一个个点,一般是这两个,有时候也不一定,所以需要一个个点。

然后点击右边的倒三角,一一展开,往下拉,找到这个urls,就可以看到视频地址了,各个清晰度的都有。
然后视频的ID 、标题等等都在这里。
为什么说要一个个点,你看这两个长得一样的, 我刚刚点的是第一个,现在看看第二个。
这里面都是右边推荐栏的封面,标题,视频id等等。

接下来来到某手,这次咱们正经一点,找个正经的视频来示范。

emmm … 这个正经多了,我们直接进入主页。
还是一样的操作,打开开发者工具,点开network,刷新,选择AII 。
这次咱们直接复制这个小姐姐的名字搜索
搜索之后,这里有两个一样的选项,咱们需要一个个点击打开看看,确定哪一个是咱们需要的。
一个是博主的ID简介等等,另外一个就是视频的数据了。
这里我直接点第一个graphql → preview 总共是21个视频,可以看到,下图最下方的protourl就是视频的url,photoH265Url 则是音频url 。

为什么只有21个?因为没加载出来,刷新后默认只给你加载那么多,所以爬的时候,可以用selenium自动翻页,就能自己加载了。
最后给大家推荐一套视频正好实战一下:代码总是学完就忘记?100个爬虫实战项目!让你沉迷学习丨学以致用丨下一个Python大神就是你!
关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Pythonconditionalassignmentoperator对于这样一个简单的问题表示歉意,但是谷歌搜索||=并不是很有帮助;)Python中是否有与Ruby和Perl中的||=语句等效的语句?例如:foo="hey"foo||="what"#assignfooifit'sundefined#fooisstill"hey"bar||="yeah"#baris"yeah"另外,类似这样的东西的通用术语是什么?条件分配是我的第一个猜测,但Wikipediapage跟我想的不太一样。
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
我想解析一个已经存在的.mid文件,改变它的乐器,例如从“acousticgrandpiano”到“violin”,然后将它保存回去或作为另一个.mid文件。根据我在文档中看到的内容,该乐器通过program_change或patch_change指令进行了更改,但我找不到任何在已经存在的MIDI文件中执行此操作的库.他们似乎都只支持从头开始创建的MIDI文件。 最佳答案 MIDIpackage会为您完成此操作,但具体方法取决于midi文件的原始内容。一个MIDI文件由一个或多个音轨组成,每个音轨是十六个channel中任何一个上的
本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决
2022/8/4更新支持加入水印水印必须包含透明图像,并且水印图像大小要等于原图像的大小pythonconvert_image_to_video.py-f30-mwatermark.pngim_dirout.mkv2022/6/21更新让命令行参数更加易用新的命令行使用方法pythonconvert_image_to_video.py-f30im_dirout.mkvFFMPEG命令行转换一组JPG图像到视频时,是将这组图像视为MJPG流。我需要转换一组PNG图像到视频,FFMPEG就不认了。pyav内置了ffmpeg库,不需要系统带有ffmpeg工具因此我使用ffmpeg的python包装p
ValidPalindromeGivenastring,determineifitisapalindrome,consideringonlyalphanumericcharactersandignoringcases. [#125]Example:"Aman,aplan,acanal:Panama"isapalindrome."raceacar"isnotapalindrome.Haveyouconsiderthatthestringmightbeempty?Thisisagoodquestiontoaskduringaninterview.Forthepurposeofthisproblem
是否可以在PyYAML或Ruby的Psych引擎中禁用创建anchor和引用(并有效地显式列出冗余数据)?也许我在网上搜索时遗漏了一些东西,但在Psych中似乎没有太多可用的选项,而且我也无法确定PyYAML是否允许这样做.基本原理是我必须序列化一些数据并将其以可读的形式传递给一个不是真正的技术同事进行手动验证。有些数据是多余的,但我需要以最明确的方式列出它们以提高可读性(anchor和引用是提高效率的好概念,但不是人类可读性)。Ruby和Python是我选择的工具,但如果有其他一些相当简单的方法来“展开”YAML文档,它可能就可以了。 最佳答案