PythonでWebから自動でデータ抜き出す凄技の肝 URLの一覧を渡されたら一体どうしたらいいか

拡大
縮小

連続取得時は1秒空ける

27行目、forループの最後に書いてある「time.sleep(1)」という記述が気になった方もいるかもしれません。これは、プログラムの処理を1秒間止めるための関数です。

『Excel、データ整理&分析、画像処理の自動化ワザを完全網羅! 超速Python仕事術大全』(宝島社)。書影をクリックするとアマゾンのサイトにジャンプします。紙版はこちら、電子版はこちら (本書では今回紹介したサンプルプログラムだけでなく、HTMLの調べ方についても説明しています)

もともと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日配信)

伊沢 剛 ITストラテジスト教育系Youtuber

著者をフォローすると、最新記事をメールでお知らせします。右上のボタンからフォローください。

いざわ たけし / Takeshi Izawa

穴吹情報デザイン専門学校(広島県福山市)教務部勤務。情報系学科でプログラミング、人工知能関連の科目を担当。2020年11月で創業40周年を迎える洋菓子専門店プチフール(鳥取県米子市)取締役

この著者の記事一覧はこちら
関連記事
トピックボードAD
キャリア・教育の人気記事
トレンドライブラリーAD
連載一覧
連載一覧はこちら
人気の動画
【田内学×後藤達也】新興国化する日本、プロの「新NISA」観
【田内学×後藤達也】新興国化する日本、プロの「新NISA」観
【田内学×後藤達也】激論!日本を底上げする「金融教育」とは
【田内学×後藤達也】激論!日本を底上げする「金融教育」とは
TSUTAYAも大量閉店、CCCに起きている地殻変動
TSUTAYAも大量閉店、CCCに起きている地殻変動
【田内学×後藤達也】株高の今「怪しい経済情報」ここに注意
【田内学×後藤達也】株高の今「怪しい経済情報」ここに注意
アクセスランキング
  • 1時間
  • 24時間
  • 週間
  • 月間
  • シェア
会員記事アクセスランキング
  • 1時間
  • 24時間
  • 週間
  • 月間
トレンドウォッチAD
東洋経済education×ICT