2011-04-27 13 views
15

私は、自動化によってURL上の別のユーザーエージェントをテストする作業を行ってきました。 Rubyを使ってコードを作成していますが、次のメソッドを使ってユーザエージェントを設定しようとしていますが、ユーザエージェントを認識していないようです。ルビーでカスタムユーザーエージェントを設定する方法

@http = Net::HTTP.new(URL) 
response = @http.request_get(URL, {'User-Agent' => useragent}) 

これを行う方法は他にありますか、何が間違っていますか?

答えて

21
http = Net::HTTP.new("your.site.com", 80) 
req = Net::HTTP::Get.new("/path/to/the/page.html", {'User-Agent' => 'your_agent'}) 
response = http.request(req) 
puts response.body 

素晴らしい作品です。

+0

を!!ありがとう..これは完全に動作します! – rubytester

+0

グローバルに設定する方法はありますか?各コールでハッシュを設定する必要はありませんか? – g33kz0r

15

はまた別の私のために働くこと:

require 'open-uri' 
html = open('http://your.site.com/the/page.html', 'User-Agent' => 'Ruby').read 
puts html 

ホープこれはあなたを助けるでしょう。

2

含まNet::HTTPHeaderinitialize_http_header方法有する:素晴らしい

@http = Net::HTTP.new(URL) 
@http.initialize_http_header({'User-Agent' => useragent}) 
response = @http.request_get(URL) 

HTH

+0

あなたは間違ったクラスでこれを呼び出しています。動作しないでしょう。 – user2398029

+1

@ user2398029これは1.9.3に当てはまりました。編集は歓迎です:) –

関連する問題