tuto – ruby – random user_agent_alias

Un billet un peu plus structuré puisque je présente une méthode (à inclure dans une class d’objet) qui permet de générer un alias de user agent
aléatoire.

L’alias est le type du browser qui consulte la page web. Cette méthode prend en plus en argument le couple ip/port, pour passer à
chaque itération un proxy différent et un alias différent (automation powa).

 

La liste des alias admis par mechanize est accessible par la commande :

puts Mechanize::AGENT_ALIASES

 

 

Voici la méthode, à appeler avec une ip et un port en paramètres :

def make_agent(addr, port)

 

Liste des alias de user_agent compatibles ruby :

    user_agents = {
      'Windows IE 6' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)',
      'Mac Mozilla' => 'Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.4a) Gecko/20030401',
      'Linux Mozilla' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030624',
      'Linux Firefox' => 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.1) Gecko/20100122 firefox/3.6.1',
      'Linux Konqueror' => 'Mozilla/5.0 (compatible; Konqueror/3; Linux)'
    }

 

On garde les clés du hash :

    items = user_agents.keys

 

Création de l’agent :

    @agent = Mechanize.new do |a|

On randomise le clé en sortie :

        a.user_agent_alias = items[rand(items.length)]

 

On passe par le proxy spécifié :

        a.set_proxy(addr, port)
    end
end