男のブログ俺は中卒だ。学歴なんて無くても生きていける。プログラミングpythonsuckamon以前、Pythonのスクレイピングの練習で「田代まさし」の画像をYahoo!画像検索からスクレイピングするコードを紹介した。【Python】BeautifulSoupを使って「田代まさし」をスクレイピングしてみたおかげさまで、あまりに華のない画像が大量にPCへダウンロードされてしまったので、今回は心機一転し「有村架純」の画像をスクレイピングしてみた。それに伴い前回のコードを少しバージョンアップし、複数ページにまたがっての画像検索、スクレイピングに対応できるようコードを改変したので、そちらも合わせて紹介していく。Contents事前準備:画像保存用のディレクトリを用意するYahoo!画像検索のURLパラメータについてスクレイピング用コード全文まとめ事前準備:画像保存用のディレクトリを用意する今回は作業ディレクトリ内に「img-kasumi」というディレクトリを用意した。実際のコードは「main.py」に書いていくことにする。Yahoo!画像検索のURLパラメータについてスクレイピングを行うにあたり、まずは画像取得先のページのURLについて調べる必要がある。今回はYahoo!画像検索を使うのだが、通常の画像検索だと以下のように一定の数に達したら続きの画像は「もっと見る」ボタンを押さないと読み込んでくれない。ボタンをクリックして読み込んでもURLは変わらないので、この状態だとスクレイピングをしづらい。そこでまずは検索画面を「簡易版」に変更しておく必要がある。検索画面上部に「簡易版へ切り替え」というリンクがあるので、ここで検索画面の切り替えを行う。することで1ページにつき20枚の画像が表示され、以降の画像は以下のとおりページ送りのリンクで、別のURLとして読み込むことができる。ちなみに簡易版のURLパラメータの構成は次のとおりだ。https://search.yahoo.co.jp/image/search?p={検索クエリ}&ei=UTF-8&b={ページ先頭に表示する画像番号}スクレイピング用コード全文スクレイピングするページのURL構成がわかれば後はコードを書くだけだ。全文を一気に紹介しよう。save_img:save_img.write(data)基本的には前回の「田代まさしスクレイピング」と、ほぼ同じコードでスクレイピングを行っているので、詳しいコードの解説は割愛する。今回は取得するページ単位でfor文を回しているため、100枚でも200枚でも大量の画像をスクレイピングできるようになった。このコードを実行すると、ページ番号・画像番号(1〜20)が名付けられた画像ファイルが「img-kasumi」ディレクトリに一括ダウンロードされる。まとめPythonのBeautifulSoupを使えば、こうしたスクレイピング処理を短時間で書くことができる。今後はスクレイピングにより取得した大量のデータを使って、何か機械学習のモデルを構築するところまで学んでいこうと思う。目盛・ラベル・凡例を設定するプロフィール中卒男15歳で熊本から単身大阪へ渡り、囲碁棋士になるための修行を積む。その後、紆余曲折ありプログラミングを学び職とする。現在プログラミングや統計、機械学習の勉強に合わせ、双子の育児に奮闘中。