自動でWebページから画像を保存したい

通勤時間の暇なときにスマホでネットサーフィンをしているのですが、面白い画像を見つけたときにはダウンロードして保存しています。ですが、自分で一つ一つダウンロードするのは手間がかかるので、自動で画像を保存したいなぁと思っていました。

そこで、調べてみると、ちょうどPythonを使ってスクレイピングをする方法について解説した記事が見つかりました。


Webページの情報(画像に限らずURLや文章などなど)を収集することをスクレイピングと呼ぶようです。
この記事を参考に、Webページに表示されている画像を自動でダウンロードするプログラムを作ってみようと思います。

Pythonライブラリのインストール

前述の解説記事で使用しているPythonライブラリ、
Requests
Beautiful Soup4
の2つをインストールします。
インストールのコマンドは、私はAnacondaを使っていますので、

conda install requests
conda install beautifulsoup4

となります。

Webページからタイトルを取得する

必要なライブラリをインストールすることが出来たので、まずは画像をダウンロードしたいWebページのタイトルを取得してみます。

import requests
from bs4 import BeautifulSoup

url = 'https://www.symphogear-xv.com/story/XVstory13.php'
response = requests.get(url)
soup = BeautifulSoup(response.text,'lxml')
title = soup.title.string
print(title)

Webページは私が好きなアニメの”戦記絶唱シンフォギア”の最新シリーズXVの最終話のストーリー紹介のページです。これを実行すると、

EPISODE 13 / 各話あらすじ – TVアニメ「戦姫絶唱シンフォギアXV」公式サイト

が出力されます。

さて、先ほどのプログラムのソースコードを見てみましょう。

1行目:urlを指定します。
2行目:requestsを使って、指定したurlからHTMLを取得します。
3行目:取得したHTMLをtextファイルに変換します。textファイルにしないとBeautiful Soupで処理することが出来ません。そして、’lxml’というツールを使ってBeautifulSoupで変換します。
4行目:BeautifulSoupの中から指定のデータを抽出しています。ここではタイトルをストリング型で抽出しています。

 

sciencompass34 has written 113 articles

はじめまして!”あおやぎ”と言います。
メーカーで研究開発の仕事をしています。このブログでは、私の専門分野である半導体やそれに関連する内容を紹介していきます。
半導体関連の知識をまとめたデータベースのようにしたいなと思っています。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください