Emulieren von Browser-GET-Anfragen mit PHP und cURL
Beim Versuch, Inhalte von einem Webserver mithilfe von cURL abzurufen, kann es zu Diskrepanzen im Vergleich zu kommen Laden des gleichen Inhalts in einem Webbrowser. Dies liegt daran, dass Webbrowser zusätzliche Informationen in ihre Anfragen einbetten, die häufig für die Authentifizierung und das ordnungsgemäße Funktionieren erforderlich sind.
Um eine browserähnliche GET-Anfrage genau zu emulieren, müssen Sie cURL mit den entsprechenden Headern und Einstellungen konfigurieren. So können Sie es machen:
Benutzeragent: Die Zeichenfolge des Benutzeragenten identifiziert den Browsertyp gegenüber dem Server. Verwenden Sie CURLOPT_USERAGENT, um einen benutzerdefinierten Benutzeragenten festzulegen, z. B. „Mozilla/4.0 (kompatibel; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)“.
Cookies: Websites können Cookies zur Authentifizierung oder Nachverfolgung verwenden. Um Cookies zu unterstützen, verwenden Sie CURLOPT_COOKIE, CURLOPT_COOKIEFILE oder CURLOPT_COOKIEJAR.
SSL-Überprüfung: Wenn die Anfrage HTTPS (sicheres Protokoll) verwendet, muss cURL möglicherweise das Zertifikat des Servers überprüfen. Deaktivieren Sie die Zertifikatsüberprüfung mit CURLOPT_SSL_VERIFYPEER, um potenzielle Fehler zu vermeiden.
Hier ist eine modifizierte Version Ihres Codes, die diese Einstellungen enthält:
<code class="php">$url = "https://new.aol.com/productsweb/subflows/ScreenNameFlow/AjaxSNAction.do?s=username&f=firstname&l=lastname"; $agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_VERBOSE, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, $agent); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); var_dump($result);</code>
Durch die Konfiguration dieser Einstellungen können Sie ein browserähnliches GET emulieren Anfragen effektiver stellen und möglicherweise alle Probleme lösen, die beim Laden der Seite mit cURL aufgetreten sind.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Browser-GET-Anfrage mit PHP und cURL emulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!