Changez l'agent utilisateur avec curl pour obtenir le code source de l'URL en tant que système d'exploitation et navigateur différent

En utilisant curl, nous pouvons récupérer le code source HTML et CSS de n'importe quelle URL spécifiée et même les informations d'en-tête http, mais certains sites proposent un contenu complètement différent ou HTML à différents OS et navigateurs, en détectant leur agent utilisateur. Pour cette raison, nous pouvons usurper l'agent utilisateur d'une autre version de navigateur et système d'exploitation, ce qui permet aux développeurs Web d'accéder rapidement à ces variantes du code source d'un site. Pour les fins ici, nous allons réaliser cela à partir de la ligne de commande en utilisant curl.

La syntaxe de base pour usurper l'agent utilisateur avec la commande curl est la suivante:

curl -A "UserAgentString" http://url.com

Bien sûr, vous allez remplacer UserAgentString par une chaîne d'agent utilisateur légitime correspondant au navigateur que vous souhaitez imiter.

Regardons quelques exemples avec diverses chaînes d'agent utilisateur.

L'une des situations les plus courantes de sources HTML et CSS différentes est pour les sites Web avec des versions mobiles réduites, vous pouvez récupérer le code source spécifique à l'iPhone avec:

curl -A "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5" http://www.apple.com

Certains sites le font aussi avec d'autres navigateurs. Ce serait Chrome 12 dans Mac OS X 10.6.8:

curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" http://microsoft.com

En voici un autre qui usurpe le Mac App Store et Mac OS X 10.6.7 en tant qu'agent utilisateur et est utile pour interroger l'App Store à partir d'un script (plus à ce sujet sur TUAW):

curl -silent -A "iMacAppStore/1.0.1 (Macintosh; U; Intel Mac OS X 10.6.7; en) AppleWebKit/533.20.25" http://ax.search.itunes.apple.com/

Encore un autre parodie Windows XP avec Firefox 3:

curl -A "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3" http://yahoo.com

Vous pouvez trouver des chaînes d'agent utilisateur sur le Web, assurez-vous simplement de les inclure entre guillemets si vous souhaitez récupérer une source de sites en tant qu'agent utilisateur. Si vous voulez en savoir plus sur les agents utilisateurs, Wikipedia a une bonne entrée sur le sujet.

Remarque: Ceci est fait intentionnellement à travers la ligne de commande et destiné à ceux qui aiment travailler à partir du terminal, mais il existe des moyens faciles de le faire grâce à des applications graphiques standard et des navigateurs Web comme Safari, Chrome et Firefox. Safari est probablement le plus simple, car vous pouvez définir différents agents utilisateurs directement depuis le menu Developer:

Cette capture d'écran a été prise à partir d'un article sur l'utilisation des appels Facebook Video Chat dans OS X Lion, qui est accompli en changeant l'agent utilisateur du navigateur en une version que Facebook a jugée compatible.