nokogiri.rbでgoogle検索結果の一覧表示
スポンサーリンク
nokogiri.rbの主な使用方法のまとめです。
############################## ### Nokogiriオブジェクト ############################## # htmlをデータ抽出用のNokogiriオブジェクトに変換 doc = Nokogiri::HTML.parse("<h1 id='title'><a href='http://konbu13.hatenablog.com/'>プログラミングのメモ</a></h1>") # webページをデータ抽出用のNokogiriオブジェクトに変換 doc = Nokogiri::HTML.parse(open("http://www.google.com/search?q=ruby&hl=ja")) ############################## ### CSSセレクタ ############################## # ※CSSセレクタを使用すれば、任意の要素を抽出できます。 # XPATHで要素を選択する事もできますが今回は割愛。 # h3の要素をもつ要素を抽出する: nodes = doc.css('h3') # ※通常は、複数の要素がCSSセレクタの条件に該当するので、nodesは配列になっています。 # クラスが「r」の要素をもつ要素を抽出する: nodes = doc.css('.r') # idが「search」の要素をもつ要素を抽出する: nodes = doc.css('#search') # タグが「h3」でclass「r」である要素をもつ要素を抽出する: nodes = doc.css('h3.r') ############################## ### 要素の操作 ############################## # 要素内の文字列を取り出す node.text # 要素をhtmlの文字列として取り出す node.inner_html # 親要素を取り出す node.parent # 子要素を取り出す node.children # 兄弟要素で自分の次の要素を取り出す node.next.text # 兄弟要素で自分の前の要素を取り出す node.previous # 要素の属性値を取り出す node['class'] # 要素の属性値に値をセットする node['class'] = 'foo' # 要素の属性の配列を取り出す node.keys # 要素の属性値の配列を取り出す node.values # 要素の属性のハッシュを取り出す node.attributes ############################## ### 連携 ############################## # タグが「h3」でclass「r」である要素をもつ要素の文字列を表示する doc.css('h3.r').each do |n| puts n.text end