Heim  >  Artikel  >  Backend-Entwicklung  >  Detaillierte Erläuterung verschiedener Methoden zum PHP-Crawling von Seiten

Detaillierte Erläuterung verschiedener Methoden zum PHP-Crawling von Seiten

怪我咯
怪我咯Original
2017-07-09 09:28:191523Durchsuche

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

Der Code lautet wie folgt:

<?php 
$url=&#39;http://t.qq.com&#39;; 
$lines_array=file($url); 
$lines_string=implode(&#39;&#39;,$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.

Der Code lautet wie folgt:

<?php 
$url=&#39;http://t.qq.com&#39;; 
$lines_string=file_get_contents($url); 
echo htmlspecialchars($lines_string);
3 >Der Code lautet wie folgt:


4. Curl-Methode

<?php 
$url=&#39;http://t.qq.com&#39;; 
$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);
Die Verwendung von Curl erfordert Platz, um Curl zu aktivieren. Methode: Ändern Sie php.ini unter Windows, entfernen Sie das Semikolon vor extension=php_curl.dll und kopieren Sie ssleay32.dll und libeay32.dll nach C:WINDOWSsystem32; installieren Sie die Curl-Erweiterung unter Linux.


Der Code lautet wie folgt:

5. fsockopen() Funktion Socket-Modus

<?php 
$url=&#39;http://t.qq.com&#39;; 
$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);
Ob der Socket-Modus auch korrekt ausgeführt werden kann Hängt von den Servereinstellungen ab. Es ist wichtig, dass Sie über

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)
}
Es sollte viele Plug-ins im Internet geben Das Snoopy-Plugin wurde online gefunden. Interessierte können es recherchieren.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn