2016-12-01 41 views
0

我試圖從youtube.com下載視頻並將其保存到文件中。 以爲我可以用蟒蛇requests做到這一點。如何使用py-requets從網站獲取數據?

這是我的一點代碼:

import sys 
import requests 

def download_file (url): 
    local_filename = url.split('/')[-1] 
    r = requests.get(url, stream = True) 

    with open(local_filename, 'wb') as f: 
     for chunk in r.iter_content(chunk_size=1024): 
       f.write(chunk) 

def main (): 
    url = 'https://www.youtube.com/watch?v=q6UJcLyYJ14' 
    download_file(url) 

if __name__ == "__main__": 
    main() 

我的希望是,該數據將被涌入的文件。但事實並非如此。我只是將html代碼放入文件中,然後程序結束。

我在做什麼錯?

感謝您的任何幫助。

回答

0

問題是,youtube視頻不是您擁有的網址上的靜態文件。如果您檢查html代碼,您會看到視頻的src不是您擁有的頁面。即使你用'src'來替換url,我也不認爲youtube會允許你以你想要的方式下載視頻。

<video tabindex="-1" class="video-stream html5-main-video" 
     style="width: 640px; height: 360px; left: 0px; 
     top: 0px; opacity: 1;" src="blob:https://www.youtube.com/e779f2eb- 
     b153-4022-a888-1b9b34b9dfa8"> 
</video> 
+0

謝謝。但一定有辦法。由於這裏有很多YouTube和co下載。 –

+1

是的,但其中許多工作與嘗試直接下載視頻完全不同。閱讀這篇文章:http://superuser.com/questions/773719/how-do-all-of-these-save-video-from-youtube-services-work – Navidad20