前回、【ネタ】 齋藤飛鳥の画像をスクレイピングを作成しましたが、これに改良を加えます。

問題点として突然Google Chromeが起動する、ユーザーがこれを閉じてしまうと処理が実行できません。またChromeを表示させないこともできますが、処理に時間がかかるためユーザーはアプリがフリーズしてしまったように錯覚してしまうかもしれません。そこでプログレスバーを表示して処理は実行されているのだということがわかるようにします。それから他のキーワードでも検索できるようにします。

デザイナでこんな感じにつくります。一番上のプログレスバーは指定した数に対して取得数はどうなっているか、二番目はスリープしているときにスリープ時間を表示するためのものです。これが動いていればフリーズしたとは思われないはずです。三番目は画像のダウンロード進行状況を示すものです。

ダウンロードが終わったらダウンロードした画像が保存されているフォルダを開きます。これで処理が終了したこともわかります。またダウンロードをときどき失敗することがあるので、ログも生成できるようにしました。

NumericUpDownコントロールで取得できる件数を選択できるようにします。1000件まで、最小は1件、デフォルトは100件です。

画像のurlを取得するメソッドです。プログレスバーで取得した数とスリープしている待ち時間がわかるようにしました。

「取得」ボタンが押されたら画像を保存するフォルダを選択させて、上記のGetImageUrlsメソッドで画像urlを取得します。そして後述のGetJpgFileメソッドで画像をダウンロードします。

取得した画像urlから画像をダウンロードするメソッドです。ログを保存する処理が追加されていますが、前回とほとんど同じです。