由於機械化2.0的pre_connect_hooks()
和post_connect_hooks()
參數發生了變化。
參見Mechanize文檔:
pre_connect_hooks()
鉤檢索響應之前調用的列表。掛鉤通過代理,URI,響應和響應主體進行調用。
post_connect_hooks()
鉤的列表中檢索的響應之後調用。掛鉤通過代理,URI,響應和響應主體進行調用。
現在您不能更改內部響應體的值,因爲參數不是數組。因此,下一個最好的辦法就是用自己更換內部解析器:
class MyParser
def self.parse(thing, url = nil, encoding = nil, options = Nokogiri::XML::ParseOptions::DEFAULT_HTML, &block)
# insert your conversion code here. For example:
# thing = NKF.nkf("-wm0X", thing).sub(/Shift_JIS/,"utf-8") # you need to rewrite content charset if it exists.
Nokogiri::HTML::Document.parse(thing, url, encoding, options, &block)
end
end
agent = Mechanize.new
agent.html_parser = MyParser
page = agent.get('http://somewhere.com/')
...
iconv將在Ruby 1.9版本中被棄用。看看String.froce_encoding – phoet 2012-01-17 16:42:30
機械化更改編碼回ASCII-8BIT,即使我處處設置編碼,force_encoding,在編碼機械化鉤子編碼的字符串。一切都一樣。我想我需要破解頁眉和html的元字符集。 – 2012-01-17 21:03:41
感謝您的提示。最後我已經用一種新的「編碼」方法進行了解釋。 – 2012-01-17 21:04:44