2

Ruby on Railsで作成されたブックマークサイトがあります。このサイトでは、多くのURLを開いて、そのタイトルとbase_uriをクロールする必要がありました。URLを開くために使用されるメソッドはopen(url)です。open URIメソッドでhttp://www.mysite.com/を開こうとすると、500内部サーバーエラーが発生しました。

TestsController#testのOpenURI ::HTTPError

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)ですが、同じエラーが発生します。

これについて私を助けてください。

4

1 に答える 1

0

私はまったく同じ問題を抱えていました。ブラウザでウェブサイトを開くことはできましたが、 open-uri ではできませんでした。ユーザーエージェントを追加しても修正されませんでしたが、「restclient」クラスを使用すると修正されました

require 'restclient'
url = 'http://www....'
user_info = RestClient.get(url, "User-Agent" => "Ruby")
于 2013-04-25T17:36:15.857 に答える