2011-04-27 8 views
15

Tengo una tarea para probar diferentes agentes de usuario en una URL a través de la automatización. Estoy usando ruby ​​para codificar, y he estado intentando establecer un agente de usuario utilizando el siguiente método, pero parece que no reconoce al agente de usuario.Cómo configurar un agente de usuario personalizado en ruby ​​

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

¿Hay alguna otra manera de hacer esto, o qué estoy haciendo mal?

Respuesta

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 

Funciona muy bien para mí.

+0

impresionante !! Gracias ... esto funciona a la perfección! – rubytester

+0

¿Hay alguna manera de configurarlo globalmente para que no tenga que configurar el hash en cada llamada? – g33kz0r

15

También otro que funciona para mí:

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

Hope esto le ayudará.

2

El incluido Net::HTTPHeader tiene la initialize_http_header método:

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

HTH

+0

Llamas esto a la clase incorrecta. No trabajará. – user2398029

+1

@ user2398029 esto era fiel a 1.9.3. las ediciones son bienvenidas :) –

Cuestiones relacionadas