Pythonでインターネットからファイルをダウンロードする

Pythonでインターネットからファイルをダウンロードしてみます。

ファイルをダウンロードするためには、urllibモジュールを使用します。urllibモジュールは、Pythonの標準ライブラリですので、事前にインストールする必要はありません。

■Python

Pythonバージョン

今回のPythonのバージョンは、「3.8.2」を使用しています。(Windows10)

動画ファイルを用意する

Pythonでインターネットからファイルをダウンロードする前に、ダウンロードするファイルを用意します。

URL:https://laboratory.kazuuu.net/wp-content/uploads/2020/10/mov_hts-samp003.mp4

今回はmp4形式の著作権フリーの動画ファイルを用意しました。urllibモジュールを使ってダウンロードできるファイルは、画像、ビデオ、PDFなどがあります。なお、ダウンロードを行うためには、フルパスを指定する必要がありますので、今回はURLも記載しました。

■urllibモジュールを使用しファイルをダウンロードする

ダウンロードするファイルが用意できましたので、urllibモジュールを使用しファイルをダウンロードするスクリプトを書いていきます。

■コード

import urllib.request

print("ダウンロード中です")

urllib.request.urlretrieve("https://laboratory.kazuuu.net/wp-content/uploads/2020/10/mov_hts-samp003.mp4", "sample.mp4")

print("ダウンロードが完了しました。")

インポートでurllib.requestモジュールを呼び出して、ファイルをダウンロードするために、urllib.request.urlretrieve()関数を使います。()内の第1のパラメーターには、動画ファイルへのフルパスを指定します。第2のパラメーターには、ダウンロード後にファイルに付ける名前を指定します。今回は「sample.mp4」と指定します。

■実行

今回書いたスクリプトを「download_website_file.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、「ダウンロード中」と出力されて、しばらくすると「ダウンロードが完了しました。」と表示されました。

カレントディレクトリを確認してみると、「sample.mp4」という動画ファイルがダウンロードされていることが確認できました。

■別の方法でファイルをダウンロードする

■コード

from urllib.request import urlopen
from shutil import copyfileobj

url="https://laboratory.kazuuu.net/wp-content/uploads/2020/10/mov_hts-samp003.mp4"

with urlopen(url) as input_file, open('sample2.mp4','wb') as output_file:
    print("ダウンロード中")
    copyfileobj(input_file, output_file)
    print("ダウンロードが完了しました。")

urllib.requestからurlopenをインポートで呼び出して、URLからファイルを取得できるようにします。

さらに、shutilからcopyfileobjをインポートで呼び出して、今回用意した動画ファイルのコピーを実行します。

urlという変数を設定し、コピーする動画ファイルへのフルパスを指定します。

その後、with構文を使い、コピーする動画ファイルへのフルパス(url)をinput_fileとし、output_file(出力するファイル)の名前を、open()内の第1のパラメーターに記述します。今回は「sample2.mp4」とします。第2のパラメーターにコピーする動画ファイルを書き込みするために「wb」と記述します。

その後に、copyfileobj()関数でコピーする動画ファイルにアクセスし、動画ファイルを取得しコピーを行います。コピーを行った後に、output_fileにコピーした動画ファイルを書き込みします。

■実行

今回のスクリプトを「web_download_file.py」という名前で保存し、コマンドプロンプトから実行してみます。

実行してみると、「ダウンロード中」と出力され、しばらくすると「ダウンロードが完了しました。」と出力されました。

出力後、カレントディレクトリを確認してみると、コピーされて作成された動画ファイルである「sample2.mp4」がダウンロードされていることが確認できました。

コメント

タイトルとURLをコピーしました