想获取一些 jd 的数据,所以用 Mechanize 写了一个小的爬虫。 代码中 body 打印出来所有中文都是乱码,用 mechanize 爬过另一个简单的站正常解析出中文 怀疑是 encoding 的问题,能想到的 encoding 都改了还是没用,上来求助大家。 代码如下
require 'mechanize'
require 'nokogiri'
require 'active_record'
require 'json'
# encoding: utf-8
class Jd_spider_engine
def run
Mechanize::Util::CODE_DIC[:SJIS] = "utf-8"
agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari'
agent.max_history = 1
agent.open_timeout = 10
#agent.page.encoding = 'utf-8'
page = agent.get("http://list.jd.com/670-671-672-0-0-0-0-0-0-0-1-1-1-1-1-72-4137-0.html",nil,nil,{ 'Accept-Charset' => 'utf-8' }
)
page.encoding = 'utf-8'
#测试中文
page.search("div.iloading").children.each { |c|
#puts c.to_s.force_encoding("utf-8")
puts c
}
#body内容
puts page.body
end
end
jd_spider_engine = Jd_spider_engine.new
jd_spider_engine.run