2017-02-11 20 views
1

を返します。HTTParty要求、私は次のコードでHTTPartyルビーの宝石でHTTPリクエストを送信しています404コード

require 'httparty' 
require 'pry' 

page = HTTParty.get('http://www.cubuffs.com/') 

binding.pry 

あなたはURLが有効であることを確認することができます。 PRYとの結果を探索するとき、私は次を得る:

[1] pry(main)> page 
=> nil 
[2] pry(main)> page.code 
=> 404 
[3] pry(main)> page.response 
=> #<Net::HTTPNotFound 404 Not Found readbody=true> 

私は他のURLに置き換えることができますので、私は、何も私のコードが間違っていないかなり確信していると予想されるように彼らが働きます。なんらかの理由で、このドメインのURLは404コードを返します。どのようなアイデアがここに間違っていて、それを修正する方法は?

答えて

2

そのサイトの所有者は、ブラウザからUser-Agentをチェックしていて、HTTPartyが使用しているものは好きではありません。あなたのブラウザからユーザエージェントヘッダを含めてページを取得することができ、ここではChromeから1です:

のMozilla/5.0(Macintosh版、インテルのMac OS X 10_12_3)のAppleWebKit/537.36(KHTML、ヤモリなど)クローム次のように/56.0.2924.87サファリ/ 537.36

はあなたのコードを変更:

require 'httparty' 
user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' 

page = HTTParty.get('http://www.cubuffs.com/', headers: {"User-Agent": user_agent}) 
関連する問題