Emulieren browserähnlicher GET-Anfragen mit Curl
Beim Erstellen von HTTP-GET-Anfragen mit Curl ist es manchmal notwendig, das Verhalten eines Webs zu emulieren Browser, um Serverfehler zu vermeiden. So geht's:
Verwenden Sie CURLOPT_USERAGENT
Einige Websites überprüfen die Benutzeragentenzeichenfolge, um festzustellen, ob die Anfrage von einem Browser kommt. Initialisieren Sie Curl und legen Sie die Benutzeragentenoption mit der gewünschten Browserzeichenfolge fest:
$agent= 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; curl_setopt($ch, CURLOPT_USERAGENT, $agent);
Cookies verarbeiten (optional)
Wenn die Website auf Cookies basiert, verwenden Sie CURLOPT_COOKIE. CURLOPT_COOKIEFILE- und/oder CURLOPT_COOKIEJAR-Optionen zum Übergeben und Speichern von Cookies:
curl_setopt($ch, CURLOPT_COOKIE, 'key1=value1; key2=value2'); curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt'); curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
SSL-Zertifikat überprüfen (nur HTTPS)
Anfragen über HTTPS erfordern ein verifiziertes SSL-Zertifikat. Setzen Sie CURLOPT_SSL_VERIFYPEER auf „false“, um die Überprüfung zu ignorieren:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Beispielcode
Hier ist ein Beispielskript, das diese Optionen kombiniert:
$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);
Mit Mit diesen Optionen können Sie browserähnliche GET-Anfragen mit Curl genau emulieren und so sicherstellen, dass der Server so reagiert, als ob die Anfrage von einem tatsächlichen Webbrowser käme.
Das obige ist der detaillierte Inhalt vonWie kann ich browserähnliche GET-Anfragen mit Curl emulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!