Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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

スクレイピング

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

tatsuo-iriyama
Web Engineer|96'|高卒|前職:溶接工|2019-01〜ユアマイスター株式会社|
yourmystar
サービス産業のIT化プラットフォーム「ユアマイスター」と大切なものをもっと大切にするメディア「ユアマイスター スタイル」を運営するスタートアップです。
http://corp.yourmystar.jp/
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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした