Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法用python从网页下载视频?_Python_Video - Fatal编程技术网

有没有办法用python从网页下载视频?

有没有办法用python从网页下载视频?,python,video,Python,Video,我想从这个网站上下载视频。 我可以用python访问它并获得整个html。但视频的url是相对的,即看起来是这样的: 有没有一种方法可以使用python从网站中提取它?找到了下面的函数 我想这就行了: import requests def download_file(url): local_filename = url.split('/')[-1] # NOTE the stream=True parameter r = requests.get(url, str

我想从这个网站上下载视频。

我可以用python访问它并获得整个html。但视频的url是相对的,即看起来是这样的:

有没有一种方法可以使用python从网站中提取它?

找到了下面的函数

我想这就行了:

import requests

def download_file(url):
    local_filename = url.split('/')[-1]
    # NOTE the stream=True parameter
    r = requests.get(url, stream=True)
    with open(local_filename, 'wb') as f:
        for chunk in r.iter_content(chunk_size=1024): 
            if chunk: # filter out keep-alive new chunks
                f.write(chunk)
                #f.flush() commented by recommendation from J.F.Sebastian
    return local_filename

download_file("http://www.jpopsuki.tv/images/media/eec457785fba1b9bb35481f438cf35a7_1351466328.mp4")

无法打开网页,但您尝试过urllib库吗?@honorem这需要一些时间,但页面打开了。我想他们的服务器速度很慢,而且很旧。我没有,只是抬头看了看。我不太明白如何获取该文件的相对链接。如果网站上有多个视频,即来自广告,该怎么办?您如何指定哪个视频?@Goldname我的回答仅解释了当您已经拥有URL时如何下载视频。要从一个网站下载多个视频,您需要提取链接(可能复杂,也可能不复杂,取决于网站),并将其传递到
下载文件
中,一次一个。这些链接是用网站的html编写的吗?对不起,我不知道你所说的视频URL是什么意思。我以为它所在的网站就是视频的URL。@Goldname我交替使用了“URL”和“link”,尽管它们是不同的东西。“链接是用网站的html编写的吗?”如果不知道你指的是哪个网站,这是不可能的。您必须签出HTML并尝试找出媒体文件存储的位置/方式。一旦你这样做并获得了指向你要查找的文件的一系列直接链接/URL/地址,你就可以使用我的答案中的函数(或
curl
wget
,随便什么)来实际执行下载。@jDo有没有一种可靠的方法可以从任何网站获取视频的源链接?我只是想要链接,而不是下载视频。