Heim > Artikel > Backend-Entwicklung > Codebeispiel für PHP zum Crawlen von Bildern und zum lokalen Speichern
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
Curl sendet Netzwerkanfragen
preg_match Reguläre Übereinstimmung
$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('!<img id="bigImg" src="(?<src>http.*\.(?<ext>jpg|png))".*>!', $str, $m); file_put_contents('./meinv.' . $m['ext'], file_get_contents($m['src']));
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();
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数据数组
$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 881a53237dd000bfcb4d4e6ec4bec98f
Regulärer Ausdruck
<img id="bigImg" src="(?<src>http.*\.(?<ext>jpg|png))".*>
.* Entspricht allen, (?8a11bc632ea32a57b3e3693c7987c420) 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!