Aktueller Standort: Startseite> Neueste Artikel> curl_init wie man user-Agent festlegt? Simulieren Sie Browseranfragen, dies zu tun

curl_init wie man user-Agent festlegt? Simulieren Sie Browseranfragen, dies zu tun

gitbox 2025-07-17

Artikeltext

1. Einführung

In der Webentwicklung ist Curl ein sehr häufiges Tool, mit dem Sie mit Servern über verschiedene Protokolle (wie HTTP, FTP) mit Servern kommunizieren können. In PHP werden Curl -Erweiterungen bei Vorgängen wie das Erhalten von Remote -Seiteninhalten und das Senden von Formulardaten häufig verwendet. Normalerweise verwendet Curl standardmäßig den eigenen Benutzer-Agent von PHP, aber wenn wir Browseranfragen emulieren, müssen wir uns als Browser verkleiden, um Anfragen zu senden. Eine der häufigsten Möglichkeiten ist die Einrichtung eines benutzerdefinierten Benutzeragenten .

2. Was ist User-Agent?

User-Agent ist ein HTTP-Header, der vom Client (normalerweise dem Browser) beim Senden einer Anforderung an den Server getragen wird. Es wird normalerweise verwendet, um die Quelle der Anforderung und die Details des Clients zu identifizieren, einschließlich des Browsertyps, der Betriebssystemversion usw. Durch Benutzer-Agent kann der Server unterschiedliche Inhalte gemäß verschiedenen Client-Geräten und Browsern zurückgeben.

Wenn beispielsweise ein Browser auf eine Webseite zugreift, enthält der HTTP-Anforderungsheader ein Benutzer-Agent- Feld, das dem folgenden ähnlich ist:

 <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.. Wie kann man Benutzer-Agent durch PHP einstellen?

Wenn Sie die Curl- Erweiterung verwenden, um Browseranforderungen zu simulieren, können Sie einen benutzerdefinierten Benutzer-Agent über die Option curlopt_useragent der Funktion curl_setopt () festlegen.

Im folgenden Beispiel richten wir User-Agent über curl_setopt () ein, um eine Chrome-Browser-Anforderung zu simulieren:

 <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>

Die Benutzer-Agent- Zeichenfolge im obigen Code simuliert die Anforderung zum Zugriff auf eine Webseite mit einem Chrome-Browser unter dem Windows-Betriebssystem.

4. Einrichten

Mit dem folgenden PHP-Code zeigen wir, wie die Benutzer-Agent in einer Curl-Anfrage eingerichtet wird, um eine Browseranforderung zu simulieren:

 <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">// Ziel -URL</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">// Browser simulieren 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">// Gibt den Antwortinhalt anstelle der direkten Ausgabe zurück</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">// Eine Anfrage ausführen</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">// Schließung cURL Sitzung</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">// Ausgabemitteilungsinhalt</span></span><span>
</span></span>

5. Andere häufige Einstellungen für Benutzer-Agent

Um den Simulationseffekt von Crawlern zu verbessern, müssen Sie möglicherweise auch komplexere Benutzer-Agents oder sogar zufällige Wechsel zwischen mehreren Benutzer-Agents festlegen. Hier sind einige Beispiele für Benutzer-Agent für mehrere gemeinsame Browser:

  • 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>

Sie können die Benutzer-Agent- Zeichenfolge nach Bedarf ändern, damit die Anforderung so aussieht, als ob sie von einem anderen Gerät oder einem anderen Browser stammt.

6. Zusammenfassung

Durch die Curl- Erweiterung von PHP können wir Browseranforderungen problemlos simulieren und einen benutzerdefinierten Benutzer-Agent einrichten, um die Anforderungsquelle zu verschleiern. Dies ist sehr nützlich, wenn Sie Netzwerkcrawler, API-Anfragen usw. durchführen. Es kann einige einfache Anti-Crawl-Mechanismen umgehen, um zu vermeiden, dass sie als Roboter mithilfe des Standardbenutzer -Agent erkannt werden.

Mit der obigen Methode können Sie die Benutzer-Agent flexibel einrichten und anpassen, um verschiedene Browser oder Geräte zu simulieren, um Webinhalte zu erhalten.