Pythonでスクレイピング

BeautifulSoup4でid, classを持つDOMを取得して効率化しよう!

前回は、スクレイピングでヘッダー情報を付与する方法とその目的を紹介しました。これまで紹介してきたスクレイピングの方法では、HTMLタグをこ辿ってデータを取得してきました。
今回は、HTMLタグに設定するidやclassを指定して効率よくデータを取得する方法を紹介します。

前回までのソース

前回のソースコードでは、h1やh2といった特定しやすいタグを指定していました。

idやclassを指定するには

beautifulsoup4でidやclassを指定するにはfind(...)find_all(...)関数を利用します。
これらは、あるDOMに含まれるタグの中から指定したタグを見つけ出します。指定には、htmlタグやid/classなどが可能です。
利用イメージは次の通りです。

find(...)find_all(...)関数を利用して天気データを取得する

1. forecastMapを取得

前回に引き続き、Yahoo!天気の天気情報を取得します。最初に、天気情報が表示されているforecastMapのidのついたDOMを取得します。

2. 各地の天気情報を取得

3. 天気情報からデータを取り出し、表示する

取得した天気情報から、地名・天気・最高気温・最低気温・降水確率といった情報を取り出し、表示してみます。

4. プログラムを実行し、結果を確認

上記の手順で書いたプログラムを実行し、結果を確認します。各地の天気情報が以下のように表示されます。

参考ソースコードはこちらです。
scraping03.py – hiro-nagami/scraping-sample

まとめ

Webページは、配置や親子関係を明確にしたりスタイルを適用するためにDOMにidclassを指定することが非常に多いです。今回はそれを利用して、効率的にデータを取得する手順を紹介しました。
データを取得する際には、idclass指定を利用して的確かつ効率的に取得できるよう実装していきましょう。

Related post

  1. iOSアプリ開発

    人気iOSアプリが作れるようになるおすすめの本8選

    アプリ開発にチャレンジできていなかったりアプリ開発に詰まってしまったり…

  2. テクノロジー

    ReactiveXで使うStreamとObserverとは?RxJSでわかりやすく解説

    前回は、ReactiveXとは?RxJSの入門と導入手順について話しま…

  3. iOSアプリ開発

    Firebase iOSの解説・セットアップ編

    アプリを作る・サービスを立ち上げるといったとき、ほとんどの場合はDBや…

  4. iOSアプリ開発

    iOSアプリ初心者が覚えておきたい10のUIクラス

    iOSアプリを開発したいけど、最初は何を知っていたら開発できるのかわか…

  5. テクノロジー

    CSSによるセンタリングの方法と注意点についてのまとめ

    HTMLとかCSSの勉強を始めると、divやsectionなどで作った…

  6. Pythonでスクレイピング

    Pythonスクレイピングの導入と利用の注意ポイント

    気象データの監視や研究用途、情報分析するといった際に必要なデータを収集…

  1. デザイン

    アンティーク風デザインに使える3つのフリー素材サイト
  2. iOSアプリ開発

    iOSアプリ開発者が本当にオススメする6つの技術系サイト
  3. iOSアプリ開発

    Firebase iOSの解説・セットアップ編
  4. 日記

    先日、第7回Creators MeetUpに参加してきました!
  5. iOSアプリ開発

    SwiftでJSONデータを使いやすくする!Codableの使い方
PAGE TOP