nlsoft
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 %*

 

 

分类:

技术点:

相关文章: