抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲

对于做抖音短视频的爸爸们,肯定少不了每天下载几个无水印的视频来借鉴。

微信有很多这样的去水印小程序,但每天限制只能免费下载一个,不然你就得开会员

想了个法子为什么不自己用Python爬呢?

第一步

首先看一下直接访问抖音得到的结果

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第1张图片

接下来打开浏览器的开发者工具,看看视频的地址。 

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第2张图片

接下来就是重点了,首先你需要让你的浏览器能够修改UA,即爬虫经常用到的「User-Agent」。 

在电脑上创建一个文件夹

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第3张图片 

这个是文件夹的路径 

C:\Users\111\Music\MV

并且在根目录的命令行运行下面这段代码。

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/star-river/Documents/MyChrome

这样就成功换成UA啦

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第4张图片

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第5张图片 

回到抖音页面的开发者模式

发现「?item_ids」开头的这个接口就包含了我们想要的无水印抖音视频。

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第6张图片

这样「item_ids」和「dytk」参数值我们也知道了。

不过我们直接用浏览器访问获取到的那两个链接是不会直接出现视频的,需要和上面的一样。

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第7张图片

最终Python代码实现:

import requests
import json
import re

headers = {
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'cache-control': 'max-age=0',
    # 这个貌似很重要
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36',
}


def download(url):
    """
    下载抖音无水印视频
    """
    # 获取接口参数
    html = requests.get(url=url, headers=headers)
    title = re.findall('itemId: "(.*?)",', html.text)[0]
    dytk = re.findall('dytk: "(.*?)" }', html.text)[0]

    # 拼接接口
    url_item = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' + title + '&dytk=' + dytk

    # 获取抖音无水印视频链接
    html_item = requests.get(url=url_item, headers=headers)
    # 字符串转字典
    content = json.loads(html_item.text)

    # 视频接口
    url_video = content['item_list'][0]['video']['play_addr']['url_list'][1]
    response = requests.get(url_video, headers=headers, allow_redirects=True)

    # 获取重定向后的链接,这个也是无水印视频的下载链接,不过本次没用
    redirect = response.url
    print(redirect)

    # 视频是二进制,需要这种下载办法
    video = requests.get(url_video, headers=headers).content
    video_name = "douyin.mp4"
    with open(video_name, 'wb') as f:
        f.write(video)
        f.flush()
    print("下载完成")


if __name__ == '__main__':
    # 抖音链接
    url = 'https://v.douyin.com/XJj85H/'
    download(url)

 

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第8张图片

抖音去水印小程序太坑了,每天只能下载一个还要钱。还是自己用Python写一个得劲_第9张图片

记得带走我~

你可能感兴趣的:(Python,python,xpath,app)