联创资讯

免费抖音短视频解析器 用Python实现下载抖音分享视频

120

在线抖音短视频解析器,抖音短视频解析工具

背景描述

在刷抖音的时候,看到有些比较喜欢的视频想保存下来,当然可以在抖音中直接保存到手机上,但是手机的存储毕竟是有限的,所以是不是有办法直接把视频保存到电脑上呢?

p>在线抖音短视频解析器,抖音短视频解析工具

背景描述

在刷抖音的时候,看到有些比较喜欢的视频想保存下来,当然可以在抖音中直接保存到手机上,但是手机的存储毕竟是有限的,所以是不是有办法直接把视频保存到电脑上呢?

实现思路分享视频到微信解析分享短地址下载视频具体步骤

1. 分享视频到微信

这一步需要使用到itchat库,通过pip安装

pip install itchat

通过itchat登录微信到电脑端,并记录登录用户的UserName,用于后续接收信息的时候,只处理发给自己的信息

def login(): global owner # 登录 itchat.auto_login(hotReload=True, exitCallback=logout_callback) owner = str(itchat.get_friends(update=True)[0][\"UserName\"]) itchat.run()

接收消息,并交给视频解析器解析下载,保存处理失败的信息到数据库,以便后续分析

@itchat.msg_register('Text')def text_replay(msg): from_user = msg['FromUserName'] if from_user == owner: print(msg.Content) success = DouYinService().download_share_video(msg.Content) if not success: wxMessageDao.create(WxMessage(message=str(msg.content), type=\"douyin\"))

获取到抖音分享的内容如下:

#在抖音,记录美好生活#他哥比他大27岁 http://v.douyin.com/rGNTPc/ 复制此链接,打开【抖音短视频】,直接观看视频!

2. 解析分享短地址

从分享的内容中解析出视频的短地址:http://v.douyin.com/rGNTPc/

def get_share_url(self, share): if re.match(\"http\", share, re.I): return share search_result = re.search(r'.*(http.*[/]?) .*', share, flags=re.M | re.I) if search_result: return search_result.group(1) return None

在浏览器中打开短地址,发现地址栏的URL被跳转了

在页面上点击播放,就可以播放视频了,发现有一个请求,并且又是302重定向到一个地址

查看页面源代码,看看这个点击播放出发的url是在哪里

就是这个playAddr,在浏览器中打开最后重定向的地址,就是播放视频的最终地址

分析结束后,我们就可以使用python来实现了。

用requests从分享中解析出来的url发起请求,allow_redirects设置伟True,允许重定向,可以从response中的url参数中获取重定向的地址,否则需要通过response的header中获取location参数

res = requests.get(share_url, allow_redirects=True)print(res.url)

拿到重定向的url之后,在发起请求,从返回的源码中获取到playAddr

video_url_res = requests.get(play_url, allow_redirects=False, headers=self.headers)video_url = video_url_res.headers['location']print(video_url)

3. 下载视频

解析出最后的视频地址之后,再发起请求,下载视频,保存本地,并记录下载日志到数据库

self.download_video(video_url, video_desc, uuid)def download_video(self, url, desc, uuid): html = requests.get(url, headers=self.headers) html = html.content with open(Config.get_video_path() + uuid + '.mp4', 'wb') as f: f.write(html) f.flush() print(desc + \" download success !\")

想要获取源码,请关注+转发,然后发送私信\"下载抖音视频\"!

标签: 在线 解析 视频