PythonでWebから自動でデータ抜き出す凄技の肝 URLの一覧を渡されたら一体どうしたらいいか
連続取得時は1秒空ける
27行目、forループの最後に書いてある「time.sleep(1)」という記述が気になった方もいるかもしれません。これは、プログラムの処理を1秒間止めるための関数です。
もともとWeb サーバー(Web ページを公開しているコンピューター)は、人間がWebページを見る速さを想定しています。そのため、スクレイピングで大量のデータを連続して取得すると、Webサーバーの負荷が高まって、最悪の場合、停止してしまうこともあるのです。そのため、繰り返し処理で取得するときは、1秒間程度空けたほうがいいとされています。
スクレイピングのやりすぎでWebサーバーに負荷を掛け過ぎると、アクセス禁止になることもあるので注意してください。
今回は書籍データである「書名」「著者」「価格」「ページ数」を探しましたが、実際に使用する際は、目的に応じて「書籍リスト.xlsx」やサンプルプログラムの該当する箇所を変更して使うといいでしょう
ただし、このようにスクレイピングをするにはHTML(HyperText Markup Language)の知識が必要となります。HTMLとはWebページを記述するための言語で、テキストの所々にタグという記号を埋め込んで、表やリストを記述したり、画像や動画、音声などをページに埋め込んだりします。
例えば サンプルプログラムの14行目には「"h1", {"class": "book-title"}」という記述がありますが、これは今回使用したWebサイトで、書籍名を示すh1タグ内のclass属性(クラス名を指定するもの)が「class="book-title"」となっているためです。
さて、最終回である次回は、問い合わせフォームなどから送られたデータの集計を支援するプログラムを紹介します。
前回:「Python」不統一なExcelファイル繋ぐワザの神髄(1月18日配信)
記事をマイページに保存
できます。
無料会員登録はこちら
ログインはこちら
印刷ページの表示はログインが必要です。
無料会員登録はこちら
ログインはこちら
無料会員登録はこちら
ログインはこちら