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. テクノロジー

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

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

  2. iOSアプリ開発

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

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

  3. テクノロジー

    Appleの新しいMessagesで何ができるのか。

    WWDC 2016では数多くのセッションが行われました。WWDC 20…

  4. iOSアプリ開発

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

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

  5. iOSアプリ開発

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

    APIからデータを取得する時、JSONでデータを受け取ることがあるかと…

  6. テクノロジー

    ReactiveXとは?RxJSの入門と導入手順

    Rx (Reactive Extension)とはここ数年で話題になっ…

PAGE TOP