Heim > Artikel > Backend-Entwicklung > PHP simuliert die Anmeldung und ruft Daten über CURL ab
cURL ist eine leistungsstarke PHP-Bibliothek, mit der Sie Webseiten einfach und effektiv crawlen und Cookies sammeln können, um simulierte Anmeldewebseiten zu vervollständigen Mit seinen umfangreichen Funktionen können Entwickler dem PHP-Handbuch weitere Informationen zu cURL entnehmen.
/*Anmeldung simulieren und Daten über CURL abrufen
Einige Websites erfordern eine Berechtigungsauthentifizierung und Sie müssen sich bei anmelden Damit die Website gültig ist, ist Curl erforderlich, um die Anmeldung auf der Webseite zu simulieren. Es ist relativ effizient hoch und unterstützt Multithreading, während file_get_contents() etwas weniger effizient ist
. Der Code zum Simulieren der Anmeldung lautet wie folgt:
*/
function login_post($url, $cookie, $post){
$ch = curl_init(); //Curl-Modul initialisieren
curl_setopt($ch, CURLOPT_URL, $url); //Anmelden und die Adresse übermitteln
curl_setopt($ ch, CURLOPT_HEADER, 0); //Ob die Header-Informationen angezeigt werden sollen
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //Ob die zurückgegebenen Informationen automatisch angezeigt werden sollen
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); //Cookie-Informationen festlegen und im angegebenen Ordner speichern
curl_setopt($ch, CURLOPT_POST, 1); //Senden in POST-Modus
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));//Auszuführende Informationen
curl_exec($ch); //CURL ausführen
curl_close($ch);
}
/*
Die im obigen Beispiel deklarierte Funktion login_post() muss eine URL-Adresse, eine Cookie-Datei zum Speichern
und Postdaten (Benutzername, Passwort und andere Informationen) bereitstellen Dass PHP mit der Funktion http_build_query()
geliefert wird, kann das Array in einen verbundenen String konvertieren. Wenn die Anmeldung über diese Funktion erfolgreich ist, müssen wir das
erhalten Informationen zur erfolgreichen Anmeldeseite. Der Code zum Deklarieren der Funktion lautet wie folgt:
*/
function get_content($url, $cookie){
$ ch = curl_init(); //Initialisieren Sie das Curl-Modul
curl_setopt($ch, CURLOPT_URL, $url); //Anmelden, um die Adresse zu übermitteln
curl_setopt ($ch, CURLOPT_HEADER , 0); //Ob die Header-Informationen angezeigt werden sollen
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Ob die zurückgegebenen Informationen automatisch angezeigt werden sollen
curl_setopt($ch , CURLOPT_COOKIEJAR, $cookie);//Cookie-Informationen festlegen und im angegebenen Ordner speichern
$rs = curl_exec($ch); //Curl zum Übertragen ausführen der Seiteninhalt
curl_close($ch);
return $rs; //return string
}
/*
Verwenden Sie curlopt_cookiefile in get_content(), um die durch die Anmeldung gespeicherten Cookie-Informationen zu lesen
Zum Schluss geben wir den Seiteninhalt zurück Erhalten Sie die Informationen nach der simulierten Anmeldung, das heißt
sind nützliche Informationen, die nur nach einer erfolgreichen normalen Anmeldung abgerufen werden können. Der folgende Beispielcode ist
*/
$post = array(
'_username' => 'g@ydma.cn',
'_password' => '123456',
'_submit' => ; 'Login'
);
$url = "http://www.ydma.cn/login/check"; //Anmeldeadresse und Original Website ist konsistent
$cookie = dirname(__FILE__).'/cookie_ydma.txt'; //Legen Sie den Pfad fest, in dem Cookies gespeichert werden
$url2 = "http :// www.ydma.cn/course/59"; //Die Adresse, um nach dem Anmelden Informationen zu erhalten
login_post($url, $cookie, $post); // Rufen Sie die simulierte Anmeldung auf
$content = get_content($url2, $cookie); // Rufen Sie nach der Anmeldung die Funktion get_content() auf, um die nach der Anmeldung angegebenen Seiteninformationen zu erhalten
@ unlik($cookie); //Cookie-Datei löschen
file_put_contents('save.txt', $content); //Speichern Sie den erfassten Seiteninhalt
Verwandte Empfehlungen:
So erhalten Sie Parameter mit # und anderen Sonderzeichen in der URL in PHP
Das obige ist der detaillierte Inhalt vonPHP simuliert die Anmeldung und ruft Daten über CURL ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!