Python爬虫:抖音无水印解析,和程序员斗智斗勇的一天

文章目录

  • 功能:抖音无水印视频解析
  • 一、思路分析
  • 二、上才艺
    • 代码编写
  • 总结

功能:抖音无水印视频解析

兄弟们,我们仅供技术交流,点到为止哈

一、思路分析

测试链接:https://v.douyin.com/esQRYMu/

我们打开这个链接,然后右键显示源代码,经过检查并未发现有用信息,基本可以判断是异步请求。(可以通过f12的elements界面和界面源代码进行信息对比,信息对比不上,基本就是异步请求了)

鼠标点击xhr界面,我们开始分析数据,但是很遗憾并未发现有用信息
Python爬虫:抖音无水印解析,和程序员斗智斗勇的一天_第1张图片
那我们转换一下思路,试试在移动端抓一下包分析一下,因为pc和移动端的数据包还是有些许差异的,仔细分析,也许会有惊喜。

Python爬虫:抖音无水印解析,和程序员斗智斗勇的一天_第2张图片果然惊喜这么快就到了,我发现这个包的数据看起来很可疑, 在这一堆数据包中,他的可用信息很多,我们耐着性子仔细看看。
在这个过程中,出现了很多的url,有一些里面有jpeg的字样,通过关键字,我们也可以判断出这种url与我们所需要的视频链接无关,可以排除。
Python爬虫:抖音无水印解析,和程序员斗智斗勇的一天_第3张图片
nice!果然在这里,我们找到了视频的链接地址。但是接下来我们又遇到了一个新的难题,左上角的水印怎么清除呢?
Python爬虫:抖音无水印解析,和程序员斗智斗勇的一天_第4张图片我们测试一下,在pc和移动端上,同样的链接是否在移动端上就没有水印,不过很遗憾这明显是痴人说梦,这条水印依然还在这里。那我们只能转换思路,分析链接。通过翻译软件,我们可以知道,水印的英文名字是:water mark 。那我们再仔细看一下获取到的视频资源链接

https://aweme.snssdk.com/aweme/v1/playwm/?video_id=v0300fg10000c3l8jq3c77ubkpf3laug&ratio=720p&line=0

可以看到链接中有一个关键字:playwm 后面的wm是不是很熟悉?我们删除后面的wm,就会发现,打开的链接就是无水印的了!

其中我也省略了几个包的分析,那些还是挺好分析的,所以不再赘述,你认真分析一下就能出来咯。毕竟要发挥我们的主观能动性,照着别人的文章一步一步抄也没啥意思。

废话不多说,上才艺

二、上才艺

代码编写

import requests,re

def main(url):#视频解析函数
    share_url =url
    headers = {
        'user-agent': 'Mozilla/5.0 (Linux; Android 6.0.1; Moto G (4)) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Mobile Safari/537.36'
    }
    response = requests.get(share_url,headers = headers)
    url  = response.url #处理页面重定向,提取新连接
    id = re.search(r'/video/(.*?)/',url).group(1) #获取视频id


    #提取带水印的视频链接地址
    url = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' + id
    response = requests.get(url,headers=headers)
    json = response.json()
    download_url = json['item_list'][0]['video']['play_addr']['url_list'][0].replace('wm','')
     #输出的链接就是无水印地址
    return download_url
if __name__ == '__main__':
    download_url = main('https://v.douyin.com/esQRYMu/')
    print(download_url)

总结

娘嘞,又是和程序员斗智斗勇的一天。

你可能感兴趣的:(手撕网z,python,爬虫,经验分享)