LoginSignup
14
17

More than 5 years have passed since last update.

画像をスクレイピングして保存までをPythonでやってみた[初心者向け]

Last updated at Posted at 2018-10-28

はじめに

興味本位でスクレイピングをやってみました。
めちゃくちゃ簡単なのでやってみて下さい。

スクレイピング

スクレイピング用のメソッドを書きました。
至ってシンプルです。
HTTPステータスコードが200の時だけ取得データを返します。

※HTTPステータスコードが分からない方へ
[参考]
HTTPステータスコードとは?種類とそれぞれの役割について

sample.py
import requests

def download_data(url):
    response = requests.get(url)
    if response.status_code == 200:
        return response.content
    else:
        print('ダウンロードに失敗しました\nステータスコード:', response.status_code)

保存

保存用のメソッドを書きました。
こちらも同様に至ってシンプルです。
保存に失敗した時を想定して、try-except構文を使用して例外処理を実施してます。

sample.py
import traceback

def save_file(data, file_name):
    try:
        with open(file_name, 'wb') as f:
            f.write(data)
    except:
        print('データの保存に失敗しました')
        traceback.print_exc()

実際に取得してみよう

スクレイピング用メソッドに取得したい画像のURLを渡して、保存用メソッドに取得したデータと、保存用ファイル名を渡してあげて、スクリプトを実行してみましょう。

sample.py
data = download_data('画像パス')
save_file(data, 'ファイル名')

[取得、保存]に成功していれば、画面には何も表示されないはずです。
失敗している場合は、エラーメッセージが出力されます。

$ python sample.py

エラーメッセージが出ていなければ成功しているはずなので、確認してみましょう。

$ find ファイル名
ファイル名

対象のファイルが見つかれば、成功です。

まとめ

興味本位で始めた割に、案外簡単に出来た事が少し感動しました。
今後やりたい事としては、機械学習を使用して類似の画像を取得してくる、みたいな事をやりたいと思っています。

おまけ

Twitterやってます!外部のエンジニアの方ともどんどん繋がりたいと考えていますので、是非フォローして頂ければと思います!@Tatsuo96
p.s.今年の2月までは溶接職人でした。ガッツ系エンジニアとしてやらせて頂いております。

14
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
17