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