XPathがいまいち馴染めなくて使いかたがよくわからなかったNokogiriをまた使ってみる。
よく読んだらcssセレクタも使えるみたいなので、XPathよりはまだそっちのほうが馴染みがあるので今度からその方向で。
Nokogiri
使い方とか
- スクレイピングのためのNokogiri利用メモ - それはそれ。これはこれ。
- Nokogiri の基本(翻訳版) - Engine Yard Blog JP | Engine Yard Blog JP
あとNokogiriでぐぐると即座に文字化けという不安なワードがヒットするので、初心者としてはなんでもないところでハマるのを防止するために問答無用で取り入れる。
Nokogiriで文字化けを防ぐ #Ruby #Nokogiri - Qiita
コメントで書いてる人のコードがスマートっぽいのでこれを使用させてもらうことに。
# -- coding: utf-8 require "open-uri" require "rubygems" require "nokogiri" # url = "http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/43008" url = "http://www.walmart.com.br/" charset = nil html = open(url) do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) p doc.title
とりあえずはてブのエントリだけ取ってくるやつ。
require "bundler/setup" require "nokogiri" require "open-uri" url = "http://b.hatena.ne.jp/" charset = nil html = open(url) do |f| charset = f.charset f.read end doc = Nokogiri::HTML.parse(html, nil, charset) doc.css(".entry-contents//h3//a").each { |e| p e.text } $ ruby scraping.rb "「出、出た~www Wordに画像直接貼りつけ奴~www」← 拡張子をzipにするとキレイな画 像を抽出できるよ(キリッ - Flash Black" "朝日新聞デジタル:高野山真言宗、6.8億損失か お布施など運用に失敗 - 社会" "「インターネットではチャンネル争いが起こらない」 - シロクマの屑籠" "ひろゆき氏による「頭のおかしな人の判定基準」に納得 - ihayato.書店 | ihayato.書 店" "目も生殖器もない「珍渦虫」成長過程を解明 筑波大など :日本経済新聞" "WEB制作会社って実際儲かるの?これから先もやっていけるの?その疑問に答える! | W P-D" "いつまで働くの、みんな・・・? - Chikirinの日記" "“動物の社会進出が進んでいる” 電気グルーヴ ニューアルバムインタビュー" "単なる一消費者のわがままとして - 24時間残念営業" "はてなスペース(β版)リリース記念キャンペーン第2弾!ギフト券を合計105名にプレ ゼント!【〜3/7まで..."
勉強になる。