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

Welche Methoden gibt es zum Crawlen von Webseiten mit PHP?

王林
Freigeben: 2023-03-12 10:18:01
Original
6049 Leute haben es durchsucht

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;
Nach dem Login kopieren

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);
Nach dem Login kopieren

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;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage