기계화 문서 사이트에서 예제를 하나 수행하고 있으며 nokogiri를 사용하여 결과를 구문 분석하려고합니다.Nokogiri 및 Mechanize 문제
doc = Nokogiri::HTML(search_results, 'UTF-8')
다음과 같은 오류가 발생합니다 :
내 문제는 다음 줄이 오면 실행한다는 것입니다
나는 윈도우 비스타 시스템에 루비 1.9를 설치 한C:/Ruby192/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.4.1-x86-mingw32/lib/nokogiri/html/document.rb:71:in `parse': undefined method `name' for "UTF-8":String (NoMethodError)
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.4.1-x86-mingw32/lib/nokogiri/html.rb:13:in `HTML'
from mechanize_test.rb:16:in `<main>'
결과 기계로 반환 된 비 라틴어 (utf8)
대구 e 샘플은 다음과 같습니다.
# encoding: UTF-8
require 'rubygems'
require 'mechanize'
require 'nokogiri'
agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get("http://www.google.com/")
search_form = page.form_with(:name => "f")
search_form.field_with(:name => "q").value = "invitations"
search_results = agent.submit(search_form)
puts search_results.body
doc = Nokogiri::HTML(search_results, 'UTF-8')
고맙습니다. 나는 실수를했다는 것을 알았다. nokogiri에 대한 호출은 다음과 같아야합니다. doc = Nokogiri :: HTML (search_results.body, 'UTF-8'). search_results는 search_results.body와 다릅니다. Search_resuls에는 mechanicalize 인스턴스화에서 곧 나오는 정보가 들어 있습니다. search_resuls.body에는 nokogiri가 문제없이 구문 분석 할 수있는 HTML utf8 정보가 들어 있습니다. –