Rubyでのスクレイピング

Nokogiriを使ってのWebスクレイピングの流れ.

open-uriでページを取ってくるパタン

require 'open-uri'
require 'nokogiri'

url = 'http://www.yahoo.co.jp'
charset = nil  # 文字コードも読み込み時にセットする
# URIをファイルのように扱える
# 閉じ忘れをしないようにブロック付きで呼び出す
html = open(url) do |f|
  charset = f.charset
  f.read # 内容を読み込んでhtmlに返す
end

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

# あとはNokogoriでギコギコ
p doc.title # HTML titleを取得

net/httpでページを取ってくるパタン

require 'pp'
require 'net/http'

Net::HTTP.version_1_2
USER_AGETNT = "TestAgent"

# start(server-uri, port)
# startは自動でセッションを閉じるようにブロック付きで呼び出す
server = 'docs.ruby-lang.org'
port = 80
path = '/ja/2.1.0/doc/'
Net::HTTP.start(server, port) do |http|
  # get(entity-path)
  response = http.get(path)
  #  pp response
  puts response.body
end