[#46093] 質問:mingw環境でのtcltklib.soのコンパイル — Dice <rubyist@...>

Diceです。

12 messages 2009/06/16

[ruby-list:46118] nokogiri がうまく動きません。

From: tadashi nagao <tadashi.nagao@...>
Date: 2009-06-22 07:19:00 UTC
List: ruby-list #46118
長尾といいます。

nokogiri を、CentOS 4.6 にインストールするまではいったのですが
うまく動きません。
原因すぐにわかるようでしたら、すみません。ぜひ教えてください。

libxml2 のバージョンが古いと文句をいわれている状態で動作させています。
こんなのが警告メッセージとしてでてきます。

HI.  You're using libxml2 version 2.6.16 which is over 4 years old and has
plenty of bugs.  We suggest that for maximum HTML/XML parsing pleasure, you
upgrade your version of libxml2 and re-install nokogiri.  If you like using
libxml2 version 2.6.16, but don't like this warning, please define the constant
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 before requring nokogiri.

そして、hpricot ではとれる情報が、nokogiri ではとれません。下記の例では、doc としてとってこれるのは、

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
だけです。
hpricot にするとたくさんとってきます。

libxml2 をバージョンアップすれば解決する問題なのでしょうか?


なお、コードは下記です。

#!/usr/bin/ruby
require 'rubygems'
require 'open-uri'
require 'kconv'
I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2 = 'yes'
#require 'hpricot'
require 'nokogiri'

#doc = Hpricot(open("http://google.com"))
doc = Nokogiri.HTML(open("http://google.com"))

puts doc

list = doc.search('a')

list.each {|one|
puts Kconv.toeuc(one.to_s)
}


-- 
------------------------------------------------------------------
長尾正(ながおただし)
有限会社磯谷商店IT事業部

価値ある情報は、行動を創りだす(シャノン)
------------------------------------------------------------------

In This Thread

Prev Next