2017-09-22 6 views
0

J'ai cherché des solutions avant de poser ces questions, mais malheureusement, aucune d'elles n'a donné de bons résultats. je reçois un OpenURI::HTTPError: 405 Not Allowed pour accéder à cette URL spécifique:analyse de la page Web rendements 405 non autorisé

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' 

aussi essayé:

$ curl -I http://streeteasy.com 

qui sont retournés:

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 

Répondre

3

le problème est que le serveur a besoin d'un en-tête User-Agent travailler , donc en boucle ce serait comme:

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

Merci pour cela. C'était mon intuition. Savez-vous comment spécifier l'agent utilisateur avec nokogiri? – Cyzanfar

+0

pas vraiment, mais cela devrait être comme ajouter un en-tête normal, [ce lien] (https://stackoverflow.com/questions/12205221/python-mechanize-how-to-add-a-header-on-a-single -open-call) pourrait vous aider – eLRuLL

+0

J'ai ajouté un user-agent à ma demande et cela a fonctionné sauf que le site me bloque puisqu'il pense que je suis un robot – Cyzanfar