Heim > Backend-Entwicklung > PHP-Tutorial > Codebeispiel für PHP zum Crawlen von Bildern und zum lokalen Speichern

Codebeispiel für PHP zum Crawlen von Bildern und zum lokalen Speichern

不言
Freigeben: 2023-04-04 21:26:01
nach vorne
3956 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit dem Codebeispiel zum Crawlen von Bildern mit PHP und zum lokalen Speichern. Freunde in Not können darauf verweisen.

Überprüfen Sie die Verwendung mehrerer PHP-Funktionen anhand eines einfachen Beispiels

Verwendete Funktionen oder Wissenspunkte

  • Curl sendet Netzwerkanfragen

  • preg_match Reguläre Übereinstimmung

Code

$url     = 'http://desk.zol.com.cn/bizhi/7386_91671_2.html';
$headers = [
    'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
];
$ch      = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);     //将curl_exec()获取的信息以字符串返回,而不是直接输出。
curl_setopt($ch, CURLOPT_HEADER, $headers);
$output = curl_exec($ch);
curl_close($ch);
$str = mb_convert_encoding($output, 'utf-8', 'gb2312');
//或$str = iconv('gb2312//IGNORE', 'utf-8', $output);

preg_match(&#39;!<img id="bigImg" src="(?<src>http.*\.(?<ext>jpg|png))".*>!&#39;, $str, $m);
file_put_contents(&#39;./meinv.&#39; . $m[&#39;ext&#39;], file_get_contents($m[&#39;src&#39;]));
Nach dem Login kopieren

Wirkung

Codebeispiel für PHP zum Crawlen von Bildern und zum lokalen Speichern

Erklärung

curl sendet eine Anfrage

Die Schritte zum Herstellen einer Curl-Verbindung in PHP sind im Allgemeinen: Initialisierung, Festlegen von Optionen, Ausführen von Vorgängen und Freigeben der Verbindung.

$ch = curl_init();
curl_setopt($ch, CURLOPT, $opt);
$out = curl_exec($ch);
curl_close();
Nach dem Login kopieren

Häufig verwendete CURLOPT Einstellungen, für weitere Referenzdokumente http://php.net/manual/zh/function.curl-setopt.php

CURLOPT_URL, string //设置url必须
CURLOPT_HEADER, array //设置请求header
CURLOPT_RETURNTRANSFER, bool //为true时,以字符串返回响应,不包含header
CURLOPT_SSL_VERIFYPEER, bool //为false时,不验证https证书,用于请求https的url
CURLOPT_POST, int //为1时配合CURLOPT_POSTFIELDS使用post请求,默认使用get
CURLOPT_POSTFIELDS, array //post数据数组
Nach dem Login kopieren

$output direkt ausgeben und gefunden Verstümmelte Zeichen Bei der Überprüfung des Quellcodes haben wir festgestellt, dass die Webseite die GB2312-Codierung verwendet und mb_convert_encoding oder iconv verwendet, um sie in die UTF-8-Codierung und Ausgabe zu konvertieren.

preg_match reguläre Übereinstimmung

Beim Betrachten des Quellcodes haben wir festgestellt, dass das von uns benötigte Bild-Tag

Regulärer Ausdruck

<img id="bigImg" src="(?<src>http.*\.(?<ext>jpg|png))".*>
Nach dem Login kopieren

.* Entspricht allen, (?) Mithilfe der Gruppierung können Sie einfach $match['name'] verwenden, um den gewünschten Teil zu erhalten

Schließlich $match[ 'src'] Rufen Sie die tatsächliche URL des Bildes ab und speichern Sie es über file_put_contents, auch wenn es abgeschlossen ist


Das obige ist der detaillierte Inhalt vonCodebeispiel für PHP zum Crawlen von Bildern und zum lokalen Speichern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
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