如何通过py-requets从网站获取数据?

时间:2016-12-01 19:14:23

标签: python video download python-requests

我正在尝试从youtube.com下载视频并将其保存到文件中。 我以为我可以用蟒蛇requests做到这一点。

这是我的小代码:

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代码放入文件中,然后程序结束。

我做错了什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

问题是youtube视频不是您拥有的网址上的静态文件。如果你检查html代码,你会发现视频的src不是你拥有的页面。即使你要用“src”替换网址,我也不认为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>