【Python3】URL を指定してファイルの内容を取得・ダウンロードする方法

ウェブ上の CSV / JSON / HTML / XML / 画像といったファイルを読み込みたいとき、コマンドラインなら wget 、PHP なら file_get_contents で簡単にできます。Python で実装するにはどうすれば良いでしょう?

Python3 でURLを指定してファイル内容を読み込む・ダウンロードする方法をご紹介します。

よく使われる2つの方法

urllibRequests の2つのモジュールが定番です。

urllib は標準モジュールのため特別な準備なしに使うことができますが、使い勝手があまり良くありません。ちょっとした処理でもコードが冗長になりがちです。

Requests は使いやすさを重視したモジュールで、冗長になりがちな処理をシンプル・エレガントに実装することができます。標準モジュールではないものの、開発現場・Python関連の本でも Requests を採用する例が多くなっています。

urllib によるサンプル

urllib によりRSSフィード(XML)を読み込んでみましょう。

 

公式ドキュメントとは思えない程、懇切丁寧かつ具体的なコードで使い方が説明されています。下記を一読すれば、取得からエラー処理まで一通りを身につけることができます。

urllib パッケージを使ってインターネット上のリソースを取得するには(Python3 公式ドキュメント)

Requests によるサンプル

まずは  pip で Requests をインストール、1コマンドで準備完了です。

 

Requests によりRSSフィード(XML)を読み込んでみましょう。モジュール名は Requests (頭文字が大文字)ですが、ソースコードでは requests (すべて小文字)に注意しましょう。

 

Requests も公式ドキュメントが懇切丁寧かつ具体的なコードベースになっています。下記を一読すれば、取得からエラー処理まで一通りを身につけることができます。

クイックスタート(Requests公式ドキュメント)

Requests モジュールは、HTTPステータスコードの取得、タイムアウト設定、POST / PUT / DELETE など GETメソッド以外のHTTPリクエストといった「よくある応用処理」についても、とてもシンプルに記述できます。

ダウンロードするサンプル

Requests モジュールにより、URL を指定してファイルをローカルマシンに保存してみましょう。

 

ちなみに PHP で書くと以下のようになるかと思います。

 

以上、URL を指定してファイルの内容を取得・ダウンロードする方法でした。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です