Ruby Mechanize - 如何在Mechanize解析之前解析站点响​​应?

时间:2015-04-15 11:38:29

标签: html ruby parsing mechanize

问题:

解析网站时,有一些字符会使Mechanize无法正确解析它。

建议的解决方案

  • 解析网站上的回复以删除这些字符 机械化之前试图解析它。
  • 或者,在Mechanize解析网络后删除这些字符,然后让Mechanize重新解析它以获取链接,表单等...

问题

  • 如何在解析之前访问网站响应?

  • 或者,我怎样才能解析它然后让Mechanize重新加载它?

谢谢!

2 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案: 您可以定义自己的html解析器,以便它可以像钩子一样。

class MyParser
  def self.parse(thing, url = nil, encoding = nil, options = Nokogiri::XML::ParseOptions::DEFAULT_HTML, &block)
    thing = thing.gsub(/\x00/,"")
    Nokogiri::HTML::Document.parse(thing, url, encoding, options, &block)
  end
end
agent.html_parser = MyParser
search_page = agent.get "https://www.example.com"

答案 1 :(得分:0)

如果您想自己处理解析,请不要使用mechanize来获取html数据。使用其他一些gem来获取html,然后手动解析它。如果你不打算使用它的解析,那么使用mechanize有什么意义呢? :|