抖音视频无水印下载

抖音视频无水印下载

selenium yyds!!!
顺便推荐份通过api下载的py
我是没找到这api在哪,f12都翻烂了,直接懒人selenium了=_=
https://github.com/downdawn/JSreverse/blob/master/%E6%8A%96%E9%9F%B3/dy/parse_video.py
(代码失效,新的在后面更新了)

import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import re

url = input('下载链接:')
if not url.startswith('https://www.douyin.com/video/'):
    r = '.*?(https://v.douyin.com/.*?/).*?'
    url = re.findall(r, url)[0]
print(url)

a = Options()
a.add_experimental_option("excludeSwitches", ["enable-automation"])
a.add_argument("--disable-blink-features=AutomationControlled")
a.add_argument('--headless')
a.add_argument('window-size=1920x1080')  # 指定浏览器分辨率
with open('./stealth.min.js') as fp:
    js = fp.read()
bro = webdriver.Chrome(options=a)
# 加载规避js
bro.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",   {"source": js})
bro.maximize_window()    

bro.get(url)
time.sleep(2)
# 动作获取标签
url_mp4 = bro.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div[1]/div[1]/div[1]/div/div[1]/div[2]/video').get_attribute("src")
name = bro.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div[1]/div[1]/div[2]/h1/span[2]').text

headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
}
response = requests.get(url_mp4,headers = headers)
code = response.status_code
print('\n响应码:',code)
content = response.content
with open('%s.mp4'%name,'wb') as fp:
    fp.write(content)
if code == 200:
    print('下载成功')
    
bro.quit()

更新
抖音加了无头浏览器检测,,js规避不了,暂时不用无头了
顺便加了EC动态等待,不用傻傻sleep了

import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import re
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

url = input('下载链接:')
if not url.startswith('https://www.douyin.com/video/'):
    r = '.*?(https://v.douyin.com/.*?/).*?'
    url = re.findall(r, url)[0]
print(url)

a = Options()
a.add_experimental_option("excludeSwitches", ["enable-automation"])
a.add_argument("--disable-blink-features=AutomationControlled")
# a.add_argument('--headless')
a.add_argument('window-size=1920x1080')  # 指定浏览器分辨率
with open('./stealth.min.js') as fp:
    js = fp.read()
bro = webdriver.Chrome(options=a)
# 加载规避js
bro.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",   {"source": js})
bro.maximize_window()    
wait = WebDriverWait(bro, 5)

bro.get(url)
# 动作获取标签
# bro.get_screenshot_as_file('1.png')
url_mp4 = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="root"]/div/div[2]/div[1]/div[1]/div[1]/div[1]/div/div[1]/div[2]/video'))).get_attribute("src")
name = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="root"]/div/div[2]/div[1]/div[1]/div[1]/div[2]/h1/span[2]'))).text
# url_mp4 = bro.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div[1]/div[1]/div[1]/div/div[1]/div[2]/video').get_attribute("src")
# name = bro.find_element_by_xpath('//*[@id="root"]/div/div[2]/div[1]/div[1]/div[1]/div[2]/h1/span[2]').text
bro.quit()

print('开始下载...')
headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
}
response = requests.get(url_mp4,headers = headers)
code = response.status_code
print('\n响应码:',code)
content = response.content
with open('%s.mp4'%name,'wb') as fp:
    fp.write(content)
if code == 200:
    print('下载成功')
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值