python2.7 selenium chromedriver 下载抖音无水印短视频

python code
--------------------------------------------------------------------------------
# coding=utf-8

from selenium import webdriver
import time, re, os, sys
reload(sys)
sys.setdefaultencoding("utf-8")

if len(sys.argv)==1:
    print 'input url'
    sys.exit()
url = sys.argv[1]

def main():
    options = webdriver.ChromeOptions()
    options.headless = True
    options.add_argument('log-level=3')
    options.add_experimental_option('excludeSwitches', ['enable-logging'])
    options.add_argument('user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25')

    chrome_driver = 'D:\soft\ChromePortable\81.0.4044.92\App\Chrome-bin\chromedriver.exe'
    b = webdriver.Chrome(executable_path = chrome_driver,options=options)
    print 'Downloading page ...'
    b.get(url)
    time.sleep(1)
    page_source = b.page_source
    b.quit()

    src = re.findall( r'<video id="theVideo" class="video-player" src="(.*?)"', page_source,  re.S)
    if src:
        src = "".join(src)
        print src
        src2 = src.replace('playwm','play')
        print src2
    else:
        print "No match src"
    userTitle = re.findall( r'<div class="user-title">(.*?)</div>', page_source,  re.S)
    if userTitle:
        userTitle = "".join(userTitle)
        print userTitle
    else:
        print "No match user Title"
    name = re.findall( r'<p class="user-info-name">(.*?)</p>', page_source,  re.S)
    if name:
        name = "".join(name)
        name = name.replace('@','')
        print name
    else:
        print "No match name"
    uid = re.findall( r'<p class="user-info-id">(.*?)</p>', page_source,  re.S)
    if uid:
        uid = "".join(uid)
        uid = uid.replace('抖音ID:','')
        uid = uid.replace(' ','')
        print uid
    else:
        print "No match uid"

    print "downloading video with wget"
    cmd = 'wget "'+ src2 + '" -O "' + uid + '_' + name+'.mp4"'
    cmd = cmd.decode('utf8').encode('gb2312')
    val = os.system(cmd)
    print val

if __name__ == '__main__':
    main()

--------------------------------------------------------------------------------
batch file
--------------------------------------------------------------------------------
@echo off
chcp 936 1>nul 2>nul
D:\Python27\python.exe D:\_prog\py\download_douyin_video.py %*

 

 
posted @ 2020-07-05 02:48  1CM  阅读(626)  评论(0)    收藏  举报