То, что я хочу сделать эторубин механизировать прокси повторить попытку, пока не подключен
У меня есть список прокси с IP | порт
Теперь Mechanize использует те прокси, и я поставил
open_timeout = 20
read_timeout = 20
То, что я хочу, это повторить попытку, но он будет повторять с тем же прокси-сервером, даже если у меня есть «proxies = @ proxies.order (« RANDOM() »). Сначала« он не будет загружать новый прокси-сервер, но вместо этого он будет загрузка из кеша
вот мой код, который я использую:
begin
proxies = @proxies.order("RANDOM()").first
proxy_ip = proxies.ip
proxy_port = proxies.port
puts proxy_ip
puts proxy_port
agent = Mechanize.new
agent.open_timeout = 20
agent.read_timeout = 20
agent.set_proxy(proxy_ip, proxy_port)
page = agent.get("http://whatismyip.org/"
rescue
puts "oh shit, error"
retry
end
doc = page.parser
ip_ad = doc.css('span').text
puts ip_ad
Теперь мой вопрос, как я могу сделать это загрузить новый прокси-сервер, вместо того, чтобы использовать его из кэша
Ваш вопрос вы должны использовать цикл? Да, вы, наверное, должны. – pguardiario
и где я должен поставить этот цикл? на странице page = agent.get («http://whatismyip.org/» и откуда я знаю, если это 200 ok? –
Я woud предлагаю 'while proxies = @ proxies.order (" RANDOM() ") .first' и проверка 'page.code' – pguardiario