通勤時間の暇なときにスマホでネットサーフィンをしているのですが、面白い画像を見つけたときにはダウンロードして保存しています。ですが、自分で一つ一つダウンロードするのは手間がかかるので、自動で画像を保存したいなぁと思っていました。
そこで、調べてみると、ちょうどPythonを使ってスクレイピングをする方法について解説した記事が見つかりました。
##Webスクレイピングとはスクレイピング(Scraping)とは、**Webサイトから任意の情報を検索し抽出する技術**のことです。また、Web上のデータの取得だけではなく、構造も解析できます。##Webスクレイピングをする... Pythonで画像スクレイピングをしよう - Qiita - Qiita |
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の中から指定のデータを抽出しています。ここではタイトルをストリング型で抽出しています。