Nic*_*k_K 1 ruby mechanize nokogiri
我在mechanize doc网站上做了一个例子,我想用nokogiri解析结果.
我的问题是当执行以下行时:
doc = Nokogiri::HTML(search_results, 'UTF-8' )
Run Code Online (Sandbox Code Playgroud)
发生以下错误:
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>'
Run Code Online (Sandbox Code Playgroud)
我在windows vista机器上安装了ruby 1.9
机械化返回的结果是非拉丁语(utf8)
代码示例如下.
# 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')
Run Code Online (Sandbox Code Playgroud)
@Douglas Drouillard
对此进行调查.我发现我犯了一个错误.对nokogiri的呼吁应该是:
doc = Nokogiri::HTML(search_results.body, 'UTF-8')
Run Code Online (Sandbox Code Playgroud)
请注意,这search_results是不同的search_results.body.
Search_results包含来自机械化实例化的信息,同时search_resuls.body包含nokogiri可以解析的html utf8信息没有问题.
| 归档时间: |
|
| 查看次数: |
4410 次 |
| 最近记录: |