Position actuelle: Accueil> Derniers articles> curl_init comment définir l'agent utilisateur? Simuler les demandes du navigateur pour le faire

curl_init comment définir l'agent utilisateur? Simuler les demandes du navigateur pour le faire

gitbox 2025-07-17

Texte de l'article

1. Introduction

Dans le développement Web, Curl est un outil très courant qui peut être utilisé pour communiquer avec les serveurs via divers protocoles (tels que HTTP, FTP). Dans PHP, les extensions de boucle sont largement utilisées dans les opérations telles que l'obtention du contenu de la page distante et la soumission des données de formulaire. Habituellement, Curl utilise par défaut le propre agent utilisateur de PHP, mais lors de l'émulation des demandes de navigateur, nous devons nous déguiser en navigateur pour envoyer des demandes. L'une des façons les plus courantes consiste à configurer un agent utilisateur personnalisé.

2. Qu'est-ce que l'agent utilisateur?

User-Agent est un en-tête HTTP transporté par le client (généralement le navigateur) lors de l'envoi d'une demande au serveur. Il est généralement utilisé pour identifier la source de la demande et les détails du client, y compris le type de navigateur, la version du système d'exploitation, etc. via User-Agent , le serveur peut renvoyer un contenu différent en fonction des différents appareils et navigateurs clients.

Par exemple, lorsqu'un navigateur accède à une page Web, l'en-tête de demande HTTP contiendra un champ d'agent utilisateur similaire à ce qui suit:

 <span><span><span class="hljs-keyword">User</span></span><span><span class="hljs-operator">-</span></span><span>Agent: Mozilla</span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">5.0</span></span><span> (Windows NT </span><span><span class="hljs-number">10.0</span></span><span>; Win64; x64) AppleWebKit</span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">537.36</span></span><span> (KHTML, </span><span><span class="hljs-keyword">like</span></span><span> Gecko) Chrome</span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">91.0</span></span><span><span class="hljs-number">.4472</span></span><span><span class="hljs-number">.124</span></span><span> Safari</span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">537.36</span></span><span>
</span></span>

3. Comment définir l'agent utilisateur via PHP?

Lorsque vous utilisez une extension CURL pour simuler les demandes de navigateur, vous pouvez définir un agent utilisateur personnalisé via l'option Curlopt_UserAgent de la fonction Curl_Setopt () .

Dans l'exemple suivant, nous configurons l'agent utilisateur via curl_setopt () pour simuler une demande de navigateur Chrome:

 <span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_USERAGENT, </span><span><span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"</span></span><span>);
</span></span>

La chaîne utilisateur-agent dans le code ci-dessus simule la demande d'accès à une page Web à l'aide d'un navigateur Chrome sous le système d'exploitation Windows.

4. Configurer l'exemple d'agent utilisateur

Avec le code PHP suivant, nous montrons comment configurer un agent utilisateur dans une demande de curl pour simuler une demande de navigateur:

 <span><span><span class="hljs-variable">$ch</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_init</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_URL, </span><span><span class="hljs-string">"https://www.example.com"</span></span><span>);  </span><span><span class="hljs-comment">// URL de destination</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_USERAGENT, </span><span><span class="hljs-string">"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"</span></span><span>);  </span><span><span class="hljs-comment">// Simuler le navigateur User-Agent</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>, CURLOPT_RETURNTRANSFER, </span><span><span class="hljs-literal">true</span></span><span>);  </span><span><span class="hljs-comment">// Renvoie le contenu de réponse au lieu de la sortie directe</span></span><span>

</span><span><span class="hljs-variable">$response</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_exec</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);  </span><span><span class="hljs-comment">// Exécuter une demande</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_close</span></span><span>(</span><span><span class="hljs-variable">$ch</span></span><span>);  </span><span><span class="hljs-comment">// fermeture cURL Session</span></span><span>

</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$response</span></span><span>;  </span><span><span class="hljs-comment">// Contenu de réponse de sortie</span></span><span>
</span></span>

5. Autres paramètres d'agent utilisateur communs

Pour améliorer l'effet de simulation des robots, vous devrez peut-être également définir des agents utilisateur plus complexes, voire une commutation aléatoire entre plusieurs agents utilisateur . Voici quelques exemples d' agent utilisateur pour plusieurs navigateurs communs:

  • Google Chrome :

     <span><span><span class="hljs-type">Mozilla</span></span><span><span class="hljs-regexp">/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/</span></span><span><span class="hljs-number">537.36</span></span><span> (</span><span><span class="hljs-type">KHTML</span></span><span>, like </span><span><span class="hljs-type">Gecko</span></span><span>) </span><span><span class="hljs-type">Chrome</span></span><span><span class="hljs-regexp">/91.0.4472.124 Safari/</span></span><span><span class="hljs-number">537.36</span></span><span>
    </span></span>
  • Mozilla Firefox :

     <span><span><span class="hljs-type">Mozilla</span></span><span><span class="hljs-regexp">/5.0 (Windows NT 10.0; Win64; x64) Gecko/</span></span><span><span class="hljs-number">20100101</span></span><span> </span><span><span class="hljs-type">Firefox</span></span><span><span class="hljs-operator">/</span></span><span><span class="hljs-number">89.0</span></span><span>
    </span></span>
  • Safari (Mac) :

     <span><span><span class="hljs-type">Mozilla</span></span><span><span class="hljs-regexp">/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/</span></span><span><span class="hljs-number">537.36</span></span><span> (</span><span><span class="hljs-type">KHTML</span></span><span>, like </span><span><span class="hljs-type">Gecko</span></span><span>) </span><span><span class="hljs-type">Version</span></span><span><span class="hljs-regexp">/13.1 Safari/</span></span><span><span class="hljs-number">537.36</span></span><span>
    </span></span>

Vous pouvez modifier la chaîne utilisateur-agent selon les besoins pour donner à la demande que ce soit à partir d'un appareil ou d'un navigateur différent.

6. Résumé

Grâce à l'extension Curl de PHP, nous pouvons facilement simuler les demandes du navigateur et configurer un agent utilisateur personnalisé pour déguiser la source de demande. Ceci est très utile lors de l'exécution de robots de réseau, de demandes d'API, etc. Il peut contourner des mécanismes anti-fabricants simples pour éviter d'être reconnu comme un robot en utilisant l' agent utilisateur par défaut.

Grâce à la méthode ci-dessus, vous pouvez configurer et ajuster de manière flexible l'agent utilisateur pour simuler divers navigateurs ou périphériques pour obtenir du contenu Web.