zoukankan      html  css  js  c++  java
  • 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:softChromePortable81.0.4044.92AppChrome-binchromedriver.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:Python27python.exe D:\_progpydownload_douyin_video.py %*
     
  • 相关阅读:
    写了一个分页控件。
    职业规划
    程序员该做的事
    做就做最优秀的员工
    Tomcat+JSP经典配置实例
    2005年11月26日8点50左右,南昌地震。
    如何添加一个自定义的columnstyles 到设计器中,以便在设计时直接使用他们?
    Oracle 的入门心得【强烈推荐】
    如何随机显示记录条数的15% ?
    重写DataGrid的DataGridBoolColumn,添加bool值改变事件。
  • 原文地址:https://www.cnblogs.com/nlsoft/p/13237484.html
Copyright © 2011-2022 走看看