Почему у меня потеря данных при использовании Nokogiri? - PullRequest
0 голосов
/ 23 мая 2011

На моем ubuntu 10.04 хосте я использую Nokogiri в Ruby-скрипте.

doc = Nokogiri::HTML(open("http://www.google.com.hk"))

Это отлично работает, и я получаю данные.

На моем хосте продукта под управлением CentOS 5 происходит сбой. Там нет ошибки, он возвращает только одну строку данных.

#<Nokogiri::HTML::Document:0x43a5332 name="document" children=[#<Nokogiri::XML::DTD:0x43a5094 name="html">]>

Где данные в #<Nokogiri::XML::DTD:0x43a5094 name="html">?

Ответы [ 2 ]

1 голос
/ 24 мая 2011

Ваш код может скрывать от вас ошибку. Попробуйте разделить ваш запрос данных от анализа данных, чтобы вы могли видеть то, что видит Нокогири:

body = open("http://www.google.com.hk").read
puts body
doc = Nokogiri::HTML(body)
0 голосов
/ 24 мая 2011

Nokogiri использует libxml2, чтобы выполнить большую часть тяжелой работы. Вероятно, у вас плохая установка libxml2 в вашей производственной среде. Установите чистую обновленную версию libxml2, а затем переустановите Nokogiri (убедитесь, что он использует вашу новую установку).

Для получения дополнительной информации, прочитайте «Что делать, если libxml2 подонок» .

...