Si la tâche consiste à vérifier des réponses HTTP et à suivre des liens ordinaires, un navigateur complet n'est pas toujours nécessaire. Ruby Mechanize expose le proxy sur l'agent qui effectue ces requêtes :

agent = Mechanize.new('office-route')
begin
  agent.set_proxy('proxy.example', 8080)
  page = agent.get('https://www.example.com/')
  puts page.code
ensure
  agent.shutdown
end

Cela suppose que la bibliothèque mechanize soit chargée. Pour une vérification autorisée d'une page publique sans authentification proxy, la liste de proxys HTTP fournit des valeurs hôte/port candidates pour l'exemple. La méthode proxy accepte aussi un nom d'utilisateur et un mot de passe comme troisième et quatrième arguments optionnels lorsque le point de terminaison les exige.

Réutilisez l'agent configuré pour les requêtes qui appartiennent à la même session de navigation. Il transporte les cookies et l'historique ainsi que les paramètres réseau. Changer le proxy de sortie ne crée pas en soi une nouvelle identité et ne jette pas un cookie de connexion.

Pour plusieurs sessions de proxy, donnez à chacune son propre agent plutôt que de modifier un agent partagé pendant que le travail est en cours. La bibliothèque documente aussi des noms de connexion uniques lorsque des connexions SSL séparées sont requises ; le nom du constructeur dans l'exemple rend ce choix explicite.

Regrouper les vérifications d'URL liées par proxy peut réduire les reconfigurations inutiles. Gardez le résultat associé à la route et à l'URL qui l'ont produit, y compris les redirections et les réponses d'erreur.

Mechanize ne reproduit pas l'exécution JavaScript d'un navigateur. Utilisez un vrai navigateur lorsque le comportement testé dépend de scripts, du rendu ou d'une authentification propre au navigateur. Une récupération HTTP réussie via le proxy répond à la question plus étroite : cet agent a pu effectuer cette requête.

Articles similaires