2014-03-30 63 views
1

應該獲取給定網站源代碼的ruby代碼不起作用。它說,該網站不存在。無法使用ruby獲取頁面源代碼

require 'uri' 
require 'net/http' 
uri = URI.parse("http://nice.com/careers?category=170") 
http = Net::HTTP.new(uri.host, uri.port) 
request = Net::HTTP::Get.new(uri.request_uri) 
response=http.request(request) 
@data = response.body 

它可以與其他網站一起使用。

  1. 爲什麼?
  2. 如何解決?
+0

只要運行這個,我得到了一個重定向代碼。你確定它說網站不存在嗎? – BroiSatse

回答

2

我總是喜歡在命令行上使用curl來檢查內容。

在這種情況下它原來http://nice.com/careers?category=170請求給你一個HTTP 301重定向到同一域但www.

curl -I "http://nice.com/careers?category=170" 
HTTP/1.1 301 Moved Permanently 
Date: Sun, 30 Mar 2014 20:50:00 GMT 
Server: Apache 
Location: http://www.nice.com/careers?category=170 

所以更新你的代碼,使用www.nice.com域。

此外,還可以實現邏輯遵循重定向,像這樣的回答:

https://stackoverflow.com/a/6934503/25398