Dmi*_*kin 5 ruby mechanize utf-8
我找到了一些使用post_connect_hook和 的解决方案pre_connect_hook,但似乎它们不起作用。我正在使用最新的 Mechanize 版本 (2.1)。新版本没有[:response]字段,不知道新版本从哪里获取。
是否可以使 Mechanize 返回 UTF8 编码版本,而不必使用 手动转换它iconv?
自 Mechanize 2.0 以来,pre_connect_hooks()和的参数post_connect_hooks()发生了变化。
请参阅机械化文档:
\n\n\npre_connect_hooks()
\n在检索响应之前要调用的挂钩列表。使用代理、URI、响应和响应正文来调用挂钩。
\n
\xe3\x80\x80
\n\n\npost_connect_hooks()
\n检索响应后要调用的挂钩列表。使用代理、URI、响应和响应正文来调用挂钩。
\n
现在您无法更改内部响应主体值,因为参数不是数组。因此,下一个最佳方法是用您自己的解析器替换内部解析器:
\nclass MyParser\n def self.parse(thing, url = nil, encoding = nil, options = Nokogiri::XML::ParseOptions::DEFAULT_HTML, &block)\n # insert your conversion code here. For example:\n # thing = NKF.nkf("-wm0X", thing).sub(/Shift_JIS/,"utf-8") # you need to rewrite content charset if it exists.\n Nokogiri::HTML::Document.parse(thing, url, encoding, options, &block)\n end\nend\n\nagent = Mechanize.new\nagent.html_parser = MyParser\npage = agent.get(\'http://somewhere.com/\')\n...\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3221 次 |
| 最近记录: |