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
キャリア・教育の人気記事