2012年1月6日金曜日

Nokogiriでページタイトルを取得する

これがあんまりうまく行かない場合が多い。ローカル(Mac)では取得できるけどherokuでダメってことも多い。
ということで今のところ以下のように落ち着いてる。
require 'rubygems'
require 'nokogiri'
require 'open-uri'
require 'nkf'
def get_title(url)
url.gsub!(Regexp.new("[^#{URI::PATTERN::ALNUM}\/\:\?\=&~,\.\(\)#]")) {|match| ERB::Util.url_encode(match)}
read_data = NKF.nkf("--utf8", open(url).read)
Nokogiri::HTML.parse(read_data, nil, 'utf8').xpath('//title').text
end
p get_title 'http://example.com/hoge/huga'
view raw gistfile1.rb hosted with ❤ by GitHub
取得先のHTML構造が壊れていたり、URLに日本語がそのまま含まれていたりすると厄介。

0 コメント:

コメントを投稿