作ったもの、プログラミングで共有できそうなこと、IT関連でやってみたことなど、なんでも書いていきます。ヤドン可愛い

Qrunchのリリースおめでとうございます! ちょっと見てみても色々と作り込まれていて素晴らしいですね・・・ Qiitaより緩い感じで、ブログっぽく利用させていただきます。 だいぶ自分用メモっぽくなるかもですが、アウトプットが大事と聞くので頑張ります。

今日のまとめ

  • 検索ワードを基に複数のWebサイトから情報を抽出し、統合して表示できるようなWebサイトを作ろうとしている。
  • それを実現するためにWebスクレイピングという手法があり、Nokogiriというライブラリを使用することで簡単に実装できる。
  • また、htmlを解析して作成したオブジェクトは、XpathやCSSセレクタを使った要素の抽出を行うことができるので、ここら辺も少し勉強した。

WebスクレイピングとNokogiri

  • WebスクレイピングはWebサイトのHTMLデータを収集して、特定のデータを抽出・整形すること。

下記のようにNokogiriを使用したところ、対象URL先のhtml情報をもつresultオブジェクトができました。

    charset = nil
    html = open(url) do |f|
      charset = f.charset # 文字種別を取得
      f.read # htmlを読み込んで変数htmlに渡す
    end

    # htmlをパース(解析)してオブジェクトを作成
    result = Nokogiri::HTML.parse(html, nil, charset)

で、どうやって欲しい情報を取り出すかというと↓

    result.xpath('//section[@class="items-box"]').each do |node|
      # タイトルの取得
      puts node.css('h3').inner_text
    end

XPathやcssポインタを使って要素を取得する。 上記なら、sectionタグを持つ要素のうちclassがitems-boxのものの中から、h3タグを持つ要素のテキストを抽出してくれる。参考サイトには画像などの抜き出しもあったけどまだ未確認・・・

参考にしたサイト

スクレイピングのためのNokogiri利用メモ

Nokogiriを使ったRubyスクレイピング [初心者向けチュートリアル]

この記事へのコメント

まだコメントはありません