【发布时间】:2014-10-16 18:04:03
【问题描述】:
我想从一个 URL 下载所有 .mp4 文件。我已经看到了如何使用 urllib 下载文件的示例,但示例看起来像:
urllib.request.urlretrieve('http://example.com/big.zip', 'file/on/disk.zip')
在这些示例中,他们指定了要下载的确切文件,big.zip,但我不知道站点目录中每个文件的名称,我只知道文件扩展名。
我希望能够为网站添加这样的内容:
urllib.request.urlretrieve('http://example.com/videos/', 'file/on/disk')
然后下载所有 .mp4 文件。我相信我可以使用.endswith 对特定的文件扩展名进行排序。
我对使用 urllib 还是很陌生,而且我从未使用过 BeautifulSoup,但我已经在几个示例中看到过它,所以我什至不知道是否这是可以做到的。
Downloading files from multiple websites.
【问题讨论】:
-
没有标准的方法来检查站点将提供的所有文件(故意的,这种事情对于站点所有者来说通常是非常糟糕的,因为您正在消耗大量的带宽)。查看您的网站是否有此类事情的 API 或存档系统 - 如果没有,您可能需要联系网站所有者以检查这是对其内容的合法使用。一些站点可能会列出所有文件,但出于安全原因,这种情况并不常见,因为许多站点并非简单地由文件系统支持。
-
你可以找到beautifulsoup的所有链接
-
@PadraicCunningham 我得研究一下 BeautifulSoup。我希望使用 Python 中包含的模块,但使用 BeautifulSoup 看起来更容易。
-
用beautifulsoup很容易找到链接,使用requests和bsoup,四五行代码大概就能搞定
标签: python python-3.x urllib