2017-09-22 12 views
0

私はこの質問をする前に解決策を探していましたが、残念ながら良い結果は得られませんでした。また、試してみましたウェブページから解析すると結果が得られません。

require 'open-uri' 
doc = Nokogiri::HTML(open("http://streeteasy.com")) 

#=> OpenURI::HTTPError: 405 Not Allowed 
    from /Users/cyrusghazanfar/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/open-uri.rb:358:in `open_http' 

$ curl -I http://streeteasy.com 

返さ:

HTTP/1.1 405 Not Allowed 
Date: Fri, 22 Sep 2017 20:03:59 GMT 
Content-Type: text/html 
Connection: keep-alive 
Server: nginx 
X-DZ: 24.193.31.96 
Vary: Accept-Encoding 
X-DZ: 127.0.0.1 
Expires: Thu, 01 Jan 1970 00:00:01 GMT 
Cache-Control: private, no-cache, no-store, must-revalidate 
Edge-Control: no-store, bypass-cache 
Surrogate-Control: no-store, bypass-cache 

答えて

3

問題は、サーバが動作するようにUser-Agentヘッダを必要としていることを、この特定のURLにアクセスする際 私はOpenURI::HTTPError: 405 Not Allowedを取得しますですので、カールすると次のようになります:

curl --header "User-Agent: Mozilla/5.0" http://streeteasy.com 
+0

ありがとうございます。それは私の感覚でした。あなたはnokogiriでユーザーエージェントを指定する方法を知っていますか? – Cyzanfar

+0

実際はそうではありませんが、通常のヘッダーを追加するようなはずです。[このリンク](https://stackoverflow.com/questions/12205221/python-mechanize-how-to-add-a-header-on-a-single -open-call)はあなたを助けるかもしれない – eLRuLL

+0

私は自分のリクエストにuser-agentを追加しました。それは、私がロボットだと思って以来、 – Cyzanfar

関連する問題