Dieser Artikel ist eine detaillierte Analyse und Einführung in verschiedene Methoden zum Crawlen von Seiten mit PHP. Freunde, die es benötigen, können sich auf
Ich mache einige Wettervorhersagen oder RSS-Abonnementprogramme beziehen Dabei ist es häufig erforderlich, nicht lokale Dateien zu erfassen. Im Allgemeinen wird PHP verwendet, um den Browserzugriff zu simulieren, und der Zugriff auf die URL-Adresse erfolgt über HTTP-Anforderungen. Anschließend können wir den HTML-Quellcode oder die XML-Daten abrufen Daten direkt und müssen häufig den Inhalt extrahieren und dann formatieren, um ihn benutzerfreundlicher anzuzeigen.
Das Folgende ist eine kurze Einführung in verschiedene Methoden und Prinzipien des PHP-Crawlings von Seiten:
1. Die wichtigsten Methoden von PHP-Crawling-Seiten:
1 ( ) Funktion
2. file_get_contents() Funktion
3. fopen()->fread()->fclose() Modus
5 . fsockopen()-Funktions-Socket-Modus
6. Verwenden Sie Plug-Ins (z. B.: http://sourceforge.net/projects/snoopy/)
2. PHP analysiert hauptsächlich HTML- oder XML-Code-Methode:
1. file()-Funktion
<?php $url='http://t.qq.com'; $lines_array=file($url); $lines_string=implode('',$lines_array); echo htmlspecialchars($lines_string);
2. file_get_contents()-Funktion
Bei Verwendung von file_get_contents und fopen muss „allow_url_fopen“ aktiviert werden. Methode: Bearbeiten Sie php.ini und setzen Sie „allow_url_fopen = On“. Wenn „allow_url_fopen“ deaktiviert ist, können weder fopen noch file_get_contents Remote-Dateien öffnen.
<?php $url='http://t.qq.com'; $lines_string=file_get_contents($url); echo htmlspecialchars($lines_string);
4. Curl-Methode
<?php $url='http://t.qq.com'; $handle=fopen($url,"rb"); $lines_string=""; do{ $data=fread($handle,1024); if(strlen($data)==0) { break; } $lines_string.=$data; }while(true); fclose($handle); echo htmlspecialchars($lines_string);
Der Code lautet wie folgt:
5. fsockopen() Funktion Socket-Modus
<?php $url='http://t.qq.com'; $ch=curl_init(); $timeout=5; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $lines_string=curl_exec($ch); curl_close($ch); echo htmlspecialchars($lines_string);
phpinfo überprüfen können, welche Kommunikationsprotokolle vom Server aktiviert werden. Mein lokaler PHP-Socket unterstützt beispielsweise kein http, daher kann ich es nur mit udp testen .
Der Code lautet wie folgt:
6. Plug-ins
<?php $fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr); if (!$fp) { echo "ERROR: $errno - $errstr<br />\n" } else { fwrite($fp, "\n") echo fread($fp, 26) fclose($fp) }
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung verschiedener Methoden zum PHP-Crawling von Seiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!