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