Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
17
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@tatsuo-iriyama

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

はじめに

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

スクレイピング

スクレイピング用のメソッドを書きました。
至ってシンプルです。
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月までは溶接職人でした。ガッツ系エンジニアとしてやらせて頂いております。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
17
Help us understand the problem. What are the problem?