下载抖音好看视频的方法
这篇文章将为大家详细讲解有关下载抖音好看视频的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
郑重申明:该文章介绍的技术仅供用于学习,不可恶意攻击抖音网站。对抖音服务器造成的任何损失,后果自负。
需要用到的工具:
**1、Chrome浏览器(如Chrome,装了httpwatch的IE浏览器等)+ charles(个人比较喜欢的抓包工具)
2. Pycharm(任何一个自己熟悉的编译器即可)
其实在该软件的编写过程中,个人认为是分为两个部分。
1.视频抓包地址的分析以及获取
2.界面逻辑代码的编写
一、视频地址的分析与抓取
1.我们先在自己的手机端的抖音软件上选取一个自己像下载的视频,并通过连接分享给别人
2.我们在Chrome上面输入上文的链接,并点击右键–设置–network 。再单独打开charles软件。点击回车键开始获取内容
我们会发现我们在浏览器初始输入的地址变成了下方的地址。其实这里涉及爬虫的一个重定向问题( 重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。)
在这里的流程其实就是:先跳转到我填写的网址—根据当前网址的重定向信息获取到定向后的位置(即 location中的位置)
我们现在倒是能够打开视频进行播放了,但是我们怎么知道视频的实际地址在哪里呢?我们要如何进行下载呢?
其实上面的图片即是我们这两个步骤在charles上对应的抓取到的信息。但是当我们点击播放键的时候,我们在charles上就能发现不一样的地方。下图是点击播放键以后抓取的信息
细心的朋友可能会看到,当我们点击视频的时候他会自动跳转到一个地址,并进行缓存。但是这个地址的是在哪里找呢?这是最关键的一步。
通过仔细的分析,我发现视频的播放地址藏在 这个地址的响应体里面(这是一个随时变化的地址,我们在这里通过正则表达式能够很好的获取)
当我们获取到这个地址以后,继续发送请求发现该地址也是一个重定向地址,其实视频的最终地址是在下图(也就是图四进行视频缓存的地址):
对该地址发送请求以后,会发现他它的响应体是字节流(我们直接将二进制流写入文件即可保存)
二、界面逻辑代码
界面搭建所需要的组件和布局其实每个人都有自己的理解和审美,所以这里仅仅展示上面对地址的抓取和视频下载。
importrequestsimportreimportrandomimporttimefromPyQt5.Qtimport*classapi(QObject):downSignal=pyqtSignal(list)def__init__(self,url,saveFilename):""":paramurl:视频地址:paramsaveFilename:保存的文件名"""super(api,self).__init__()self.session=requests.session()self.url=urlself.savename=saveFilenameuserAgent=["Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/535.1(KHTML,likeGecko)Chrome/14.0.835.163Safari/535.1","Mozilla/5.0(WindowsNT6.1;WOW64;rv:6.0)Gecko/20100101Firefox/6.0","Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/534.50(KHTML,likeGecko)Version/5.1Safari/534.50","Opera/9.80(WindowsNT6.1;U;zh-cn)Presto/2.9.168Version/11.50"]key=random.randint(0,3)self.headers={'content-type':'application/json','User-Agent':userAgent[key]}defgetdoumload(self):"""作用:获取最终的视频的下载地址:return:"""try:url=self.urlrep=self.session.get(url,headers=self.headers,verify=False)#获取跳转的链接self.downLoadUrl=re.findall("playAddr:(.*)",rep.text)[0].split('"')[1]#获取视频的下载地址,会进行重定向except:self.downLoadUrl="parseerror"returnself.downLoadUrldefdownLoadVideo(self):"""作用:对视频文件进行保存,并发送信号给主界面:return:"""try:r=self.session.get(self.downLoadUrl,headers=self.headers,verify=False)length=float(r.headers['content-length'])except:returnFalsecount=0time1=time.clock()withopen(self.savename,'wb')asf:forchunkinr.iter_content(chunk_size=512):ifchunk:f.write(chunk)count+=len(chunk)p=count/length*100intervals=time.clock()-time1speed=count/1024/1024/intervalsself.downSignal.emit([p,speed])if__name__=='__main__':url="https://v.douyin.com/J1cGcN5/"apt=api(url,"./xx.mp4")ifapt.getdoumload()!="parseerror":apt.downLoadVideo()
关于下载抖音好看视频的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。