2011-04-27 17 views
15

Tôi có nhiệm vụ kiểm tra các tác nhân người dùng khác nhau trên URL thông qua tự động hóa. Tôi đang sử dụng ruby ​​để mã, và tôi đã cố gắng để thiết lập một tác nhân người dùng bằng cách sử dụng phương pháp sau đây, nhưng nó dường như không nhận ra tác nhân người dùng.Cách đặt đại lý người dùng tùy chỉnh trong ruby ​​

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

Có cách nào khác để thực hiện việc này hay không, tôi đang làm gì sai?

Trả lời

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 

Làm việc tuyệt vời cho tôi.

+0

Awesome !! Cảm ơn .. điều này hoạt động hoàn hảo! – rubytester

+0

Có cách nào để thiết lập nó trên toàn cầu, do đó bạn không phải đặt băm trên mỗi cuộc gọi? – g33kz0r

15

Cũng khác mà làm việc cho tôi:

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

Hy vọng điều này sẽ giúp bạn.

2

trình bao gồm Net::HTTPHeaderinitialize_http_header phương pháp:

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

HTH

+0

Bạn đang gọi điều này trên lớp sai. Sẽ không làm việc. – user2398029

+1

@ user2398029 điều này đúng với 1.9.3. chỉnh sửa được chào đón :) –