Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Methoden gibt es zum Crawlen von Webseiten mit PHP?

Welche Methoden gibt es zum Crawlen von Webseiten mit PHP?

王林
王林Original
2021-09-02 15:43:145977Durchsuche

Die Methoden für PHP zum Crawlen von Webseiten sind: 1. file_get_contents()-Funktion 3. fopen()->fread()->fclose-Modus; fsockopen( )Funktion.

Welche Methoden gibt es zum Crawlen von Webseiten mit PHP?

Die Betriebsumgebung dieses Artikels: Windows 10-System, PHP 7.1, Thinkpad T480-Computer.

Wenn wir Entwicklungsarbeiten durchführen, müssen wir normalerweise einige Webseitendateien abrufen, um den Browserzugriff zu simulieren, über http-Anfragen auf die URL-Adresse zuzugreifen und dann den HTML-Quellcode oder die XML-Daten abzurufen. Wir können die Daten jedoch nicht direkt ausgeben, nachdem wir sie erhalten haben. Oft müssen wir den Inhalt extrahieren und ihn dann formatieren, um die Daten benutzerfreundlicher anzuzeigen.

Lassen Sie uns kurz über verschiedene Methoden und Prinzipien des PHP-Crawlings sprechen:

1. file_get_contents()-Funktion

3. ->fread()->fclose()-Modus

4.curl-Methode

5. Die wichtigsten Möglichkeiten für PHP, HTML- oder XML-Code zu analysieren:

1 ()-Funktion

<?php
//定义url
$url=&#39;http://t.qq.com&#39;;
//fiel函数读取内容数组
$lines_array=file($url);
//拆分数组为字符串
$lines_string=implode(&#39;&#39;,$lines_array);
//输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

2. file_get_contents()-Funktion

Verwenden Sie file_get_contents und fopen, um Allow_url_fopen zu aktivieren. 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
$url=&#39;http://t.qq.com&#39;;
 //file_get_contents函数远程读取数据
$lines_string=file_get_contents($url);
 //输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo htmlspecialchars($lines_string);

3. fopen()->fread()->fclose()-Modus

<?php
//定义url
$url=&#39;http://t.qq.com&#39;;
 //fopen以二进制方式打开
$handle=fopen($url,"rb");
//变量初始化
$lines_string="";
//循环读取数据
do{
    $data=fread($handle,1024);
    if(strlen($data)==0) {
        break;
    }
$lines_string.=$data;
}while(true);
//关闭fopen句柄,释放资源
fclose($handle);
 //输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

4. Die Verwendung von Curl erfordert Platz zum Öffnen von Curl. 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.

<?php
// 创建一个新cURL资源
$url=&#39;http://t.qq.com&#39;;
$ch=curl_init();
$timeout=5;
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
// 抓取URL
$lines_string=curl_exec($ch);
// 关闭cURL资源,并且释放系统资源
curl_close($ch);
//输出内容,嘿嘿,大家也可以保存在自己的服务器上
echo $lines_string;

5. fsockopen() Funktion Socket-Modus

Ob der Socket-Modus korrekt ausgeführt werden kann, hängt auch von den Servereinstellungen ab. Sie können über phpinfo überprüfen, welche Kommunikationsprotokolle vom Server aktiviert werden.

<?php
$fp = fsockopen("t.qq.com", 80, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: t.qq.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

Der 17. Online-Kurs der chinesischen PHP-Website hat offiziell begonnen (

php-Training

)! Freunde, die PHP-Programmierung lieben, beeilen Sie sich und melden Sie sich an!

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum Crawlen von Webseiten mit PHP?. 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