Nokogiri で HTTPresponse を解析する
こんにちは、Nokogiri で HTTPresponse オブジェクトを解析できません。
この関数を使用して、ここで Web サイトを取得します。
リンクを取得する
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でなければならない」と不平を言います
誰かが助けを提供できれば、それは非常にありがたいです