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アプリ開発が簡単にできるStoryboard入門

    iOSアプリを開発しようとXcodeをダウンロードしてプロジェクト作成…

  2. iOSアプリ開発

    xcconfigを使って本番とテスト環境を切り替える方法

    iOSアプリを開発していると、本番の環境とテストする環境を切り替えて開…

  3. iOSアプリ開発

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

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

  4. テクノロジー

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

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

  5. テクノロジー

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

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

  6. iOSアプリ開発

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

    今回は、iOSアプリエンジニアとして実際に良く参考にしているサイトを紹…

  1. 便利

    携帯代を安くして、通信制限も解消する方法「LINEモバイルのすすめ」
  2. iOSアプリ開発

    Firebase iOSの解説・セットアップ編
  3. Pythonでスクレイピング

    スクレイピングでヘッダー情報を付与する方法とその目的
  4. テクノロジー

    iOSアプリ開発が簡単にできるStoryboard入門
  5. 日記

    先日、ディレクターだらけの大忘年祭 2013へ参加してきました!
PAGE TOP