【初心者のためのPython入門】Webスクレイピング〜画像データのダウンロード〜

■目次
1. 概要
2. Web上の情報を取得する方法
3. urllib.requestを使ったダウンロード
4. urlopen()でファイルに保存する方法

 

1. 概要

今回は、Webスクレイピングを利用してWebサイトから画像データのダウンロードする方法を紹介します。
ライブラリ「urllib」を使ってダウンロードしてみましょう。
プログラムの概要としては以下のものです。

 

・指定したURLから任意の情報を取得する。

 

コードとしては以下のものです。

 

・ライブラリ「urllib」の取り込み。
・URLと保存パスを指定する。
・ダウンロードする。

 

それでは、ファイルエディタウィンドウを開いて、任意の名前.pyのファイルを作成・保存してください。

 

2. Web上の情報を取得する方法

Pythonでは、Webサイトにある画像データを取得すrために「urllibライブラリ」を使用します。
このライブラリを使うと、HTTPやFTPを利用して画像データをダウンロードすることができます。
ライブラリ「urllib」は、URLを扱うモジュールを集めたパッケージだということですね。
その中でも、「urllib.requestモジュール」は、Webサイトにある画像データにアクセスする機能を提供しています。
認証やリダイレクト、Cookieなど、インターネットで利用されるさまざまなリクエストや処理に対応しています。

 

3. urllib.requestを使ったダウンロード

最初に、Webサイトからファイルをダウンロードする方法から紹介します。
ファイルをダウンロードするには、urllib.requwstモジュールにあるurlretrieve()関数を利用します。
この関数を利用することによって、直接ファイルをダウンロードすることができます。
以下に記載するのは、Web上にアップされているPNGファイルを任意のファイル名で保存するプログラムになります。

 

 

Pythonのプログラムを確認してみましょう。
Pythonでライブラリを利用するためには、import文を利用して、ライブラリを取り込む必要があります。
上記のプログラムはurllib.requestモジュールを取り込んでいます。
「urllib.request」のように、ドット「.」で区切ってモジュールを指定していますが、これは「urllibパッケージの配下にあるrequestモジュールである」という意味になります。
ダウンロードの部分では、ファイルをダウンロードしています。
urlretrieve()の第1引数にURLを、第2引数に保存先のファイルパスを指定しています。

 

4. urlopen()でファイルに保存する方法

セッション3では、request.urlretrieve()関数を利用してファイルに保存していました。
セッション4では、request.urlopen()を利用する方法を紹介します。
request.urlopen()を使うと、直接ファイルに保存するのではなく、画像データがPythonのメモリ上に取得されます。
そこで、request.urlopen()を利用する場合には、メモリ上に取得した画像データを明示的にファイルに保存しています
「画像データを取得できた場合、取得したデータをファイルに保存する」といった流れになります。
以下にソースコードを記載します。

 

 

ダウンロードの部分では、urlopen()関数によってPNGファイルのURLリソースを開きます。
そのあとに、read()メソッドで画像データを読み取ります。
ファイルへの保存のコードでは、ファイルを開くopen()関数を利用してファイルを開きます。
ファイルの読み書きモードを表している「mode」を”wb”にしてファイルを開きます。
「w」は書き込みモードを表し、「b」はバイナリモードを表しています。
最後に、write()メソッドを利用して、ダウンロードしたバイナリデータをファイルに保存しています。

 

それでは!

コメントを残す

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