Phân tích cú pháp HTTP phản hồi với NokogiriRuby phân tích cú pháp HTTPresponse với Nokogiri
Xin chào, tôi đang gặp sự cố khi phân tích cú pháp đối tượng HTTPsponse với Nokogiri.
tôi sử dụng chức năng này để lấy một trang web ở đây:
lấy một liên kết
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)
Khi tôi làm html này in một bó toàn bộ gibberish và Nokogiri than phiền rằng "node_set phải là một Nokogiri :: XML :: NOdeset
Nếu bất cứ ai có thể cung cấp trợ giúp, nó sẽ được đánh giá khá cao
Bạn nên sử dụng cơ giới hóa thay vì mớ hỗn độn nóng này. Nó sẽ chăm sóc chuyển hướng và giao dịch với mã hóa cho bạn. – pguardiario