2012-12-18 42 views
1

我有一個書籤站點,在rails上完成,其中需要打開許多URL並抓取其標題和base_uri。用於打開URL的方法已打開(url)。當我嘗試用開放URI方法打開http://www.mysite.com/時,我得到500個內部服務器錯誤。打開uri獲取500內部服務器錯誤

OpenURI :: HTTPError在TestsController#測試

500內部服務器錯誤

我可以通過瀏覽器訪問這個URL。

我的代碼下面貼

require 'hpricot' 
    require 'open-uri' 
    require 'timeout' 
    require 'net/http' 
url = 'http://www.mysite.com/' 
@filep = open(url) 
base_uri = @filep.base_uri 

我試着用角度來說,Hpricot過使用的代碼相同。

@doc = Nokogiri :: HTML(open(url).read)但獲得相同的錯誤。

請幫我解決這個問題。

+0

爲我工作。你確定你沒有將/ etc/hosts中的mysite.com映射到內部站點嗎? – simonmorley

+0

不,我沒有映射。它是我需要爬行的外部站點。 – EKL

+0

你是否使用irb得到同樣的問題? – simonmorley

回答

0

我有完全相同的問題;可以在我的瀏覽器中打開網站,但不能通過open-uri。添加用戶代理沒有修復它,但使用'restclient'類

require 'restclient' 
url = 'http://www....' 
user_info = RestClient.get(url, "User-Agent" => "Ruby")