这几天在家闲得败兴结衣波多野家庭教师,不测的挖掘到了一个资源网站(你懂得),然则网速慢告白多下载不了各样原因让我倏得萌发了爬虫的想法。
勾引色情底下说说经由:
一、网站分析
领先干涉彀站,F12检查,原来认为这种低端网站很好爬取,是我太低估了web主。不错看到我刷新网页之后,出现了许多js文献,况兼反应赢得的代码与源代码不通常,这就不难猜到这个网站是动态加载页面。
目下我知谈的动态网页爬取的法子唯独这两种:1、从网页反应中找到JS剧本复返的JSON数据;2、使用Selenium对网页进行模拟看望。源代码问题好措置,病笃的是我赢得的源代码中有莫得我需要的东西。我再一次干涉彀站进行F12检查源代码,点击左上角然后在页面点击一个视频赢得一个元素的代码,戒指内部莫得镶嵌的原视频聚会(看来我确凿是把别东谈主想的太笨了)。
没成见唯独进行持包,去找js苦求的接口。再一次F12开放网页调试器具,点击单独的一个视频进行播放,然后在Network中筛选一下,只看HXR反应(HXR全称是XMLHTTPRequest,HMLHTTP是AJAX网页树立时代的病笃构成部分。除XML以外,XMLHTTP还能用于赢得其它时局的数据,如JSON能够致使纯文本。)。
然后我一项一项的去检查复返的反应信息,发现当我点击播放的时候有后缀为.m3u8的聚会,随后就不休刷新.ts文献的聚会。
原来认为这便是原视频的地址,我傻傻的径直从这个m3u8文献的headers中的URL径直干涉彀站望望,戒指傻眼了,赢得的是一串串.ts的文献名。
没成见只可百度君了。 科普了一下,也就说咱们必须把ts文献皆下载下来进行团结之后才调转成视频。
好了,视频原地址弄明晰了,当今咱们运行从一个视频彭胀到首页的总共这个词页面的视频。再一次进行持包分析,发现一个API中包含了首页的分类列表,关联词内部并莫得干涉分类的URL地址,唯惟一个tagid值和图片的地址。
于是我又在主页点一个分类,再次进行持包,发现了一个API中包含了一个分类的单页总共视频的信息,通过他们的headers中的URL对比发现,对于视频的前一部分皆是https:xxxxxxx&c=video,然后m=categories,通过字面意料咱们皆不错知谈是分类,而每个tagid值对应不同的分类。况兼还发现每个URL中皆追加了时代戳timestamp(这是web主为了确保苦求不会在它第一次被发送后即缓存,看来依然有贯注计啊)。当m=lists,则是每个分类下的视频列表,这内部咱们就不错找到每个视频对应的ID了。
通过id咱们不错赢得到视频的详备信息,况兼还有m3u8文献URL地址的背面一部分。
好了,网站咱们领略明晰了,当今运行堆码了。
二、写代码
导入联系模块
2.界说函数,赢得网站首页分类列表信息
3.界说函数,通过上一个函数复返的分类信息,字据分类对应的id,输入id并传输到面前URL中以便赢得分类下的视频列表信息
4.在视频列表信息中赢得视频对应的id,赢得单个视频详备信息的URL
5.在视频详备信息中找到m3u8文献的下载地址,并将文献保存到创建的文献中
6.将m3u8文献中的ts单个索要出来放进列表中。
7.遍历列表赢得单个ts地址,苦求下载ts文献放进创建的文献夹中
代码整合
此时正不才载
三、问题:
领先对于这种网站选拔的爬取法子有许多,而我的法子相对来说有点太低端了,况兼我也 是第一次写博客,第一次写爬虫这类技艺,在时局上定名上存在着许多问题,函数的用法不全面。况兼在运行的时候效果低速率太慢。在赢得分类列表和视频列表时,因为是JSON文献,需要转码,过程太多加上技艺不够矫健我就凝视掉了。还有便是对于这种动态网页了解不够,是以学爬虫的小伙伴一定要把网页的基础搞好。但愿诸君大佬多指正多月旦,让咱们这些小白一谈艰辛学好Python。
细心:内部总共的聚会我的给打码了,怕被息争了哈哈
到此这篇对于Python爬虫进阶之爬取某视频并下载的罢了的著作就先容到这了结衣波多野家庭教师,更多联系Python 爬取某视频并下载履行请搜索剧本之家夙昔的著作或不竭浏览底下的联系著作但愿各人以后多多支柱剧本之家!
您可能感好奇景仰的著作: python b站视频下载的五种版块 教你用Python下载抖音无水印视频 教你奈何使用Python下载B站视频的详备教程 python基于tkinter制作m3u8视频下载器具 Python通过m3u8文献下载团结ts视频的操作 python gui树立——制作抖音无水印视频下载器具(附源码) 用python制作个视频下载器 行使python 下载bilibili视频 写一个Python剧本下载哔哩哔哩跳舞区的总共视频