2014-10-16 46 views
1

我想要從一個URL下載所有.mp4文件。我已經看到了如何下載與的urllib文件的例子,但例子看起來像:Python3從一個網址下載多個文件

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.

urllib.request for python 3.3 not working to download file

How do I download a file over HTTP using Python?

+0

沒有標準的方法來檢查一個網站將服務的所有文件(故意,這種事情通常對網站所有者來說真的很糟糕,因爲你正在吸取大量的帶寬)。看看您的網站是否有API或存檔系統 - 如果沒有,您可能希望與網站所有者聯繫,以檢查這是否合法使用其內容。有些網站可能會列出所有文件,但由於安全原因,這種情況並不常見,而且許多網站並不僅僅由文件系統支持。 – 2014-10-16 18:06:14

+0

你可以找到與美麗的所有鏈接 – 2014-10-16 18:23:02

+0

@PadraicCunningham我將不得不調查BeautifulSoup。我希望能夠使用Python中包含的模塊,但使用BeautifulSoup看起來更容易。 – Andrew 2014-10-16 18:24:54

回答

0

如果你能列出目錄中的內容(由Apache的上市),你應該分析此輸出,建立文件列表,並調用單個文件下載例程循環。

如果您無法做到,您無法做到,應用程序通常會隱藏用戶的文件結構。

+0

我想我可能不得不解析HTML輸出並將匹配的文件名從代碼和循環中提取出來在他們身上。如果有更簡單的方法,我只是不想做所有這些工作。 – Andrew 2014-10-16 18:10:47