使用 Nokogiri 解析 HTTPresponse
您好,我无法使用 Nokogiri 解析 HTTPresponse 对象。
我使用这个函数在这里获取一个网站:
获取链接
def fetch(uri_str, limit = 10)
# You should choose better exception.
raise ArgumentError, 'HTTP redirect too deep' if limit == 0
url = URI.parse(URI.encode(uri_str.strip))
puts url
#get path
req = Net::HTTP::Get.new(url.path,headers)
#start TCP/IP
response = Net::HTTP.start(url.host,url.port) { |http|
http.request(req)
}
case response
when Net::HTTPSuccess
then #print final redirect to a file
puts "this is location" + uri_str
puts "this is the host #{url.host}"
puts "this is the path #{url.path}"
return response
# if you get a 302 response
when Net::HTTPRedirection
then
puts "this is redirect" + response['location']
return fetch(response['location'],aFile, limit - 1)
else
response.error!
end
end
html = fetch("http://www.somewebsite.com/hahaha/")
puts html
noko = Nokogiri::HTML(html)
当我这样做时,html 会打印出一大堆乱码,而 Nokogiri 抱怨说“node_set 必须是 Nokogiri::XML::NOdeset
如果有人可以提供帮助,将不胜感激