隨著互聯網內容的豐富,網絡上湧現了大量優質的圖片資源。很多場景下,我們需要從指定網站批量採集圖片,比如風景照、藝術作品等。本文將帶你了解如何利用PHP 編寫腳本,實現自動採集網站中的高清圖片。
採集前,首先要對目標網站的結構進行分析。通常,圖片會以img標籤形式嵌入頁面。通過觀察網頁源碼,我們能夠找到圖片地址的規律,進而提取出目標圖片的鏈接。
明確採集思路後,我們使用PHP 的curl 功能抓取網頁源碼,再通過正則表達式匹配圖片鏈接,最後循環下載保存圖片。
// 設定 curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 獲取 HTML 代碼
$html = curl_exec($ch);
curl_close($ch);
// 定義正則表達式
$pattern = '/<img[^>]+src=["\']?([^"\'>]+)["\']?[^>]*>/is';
// 查找圖片地址
preg_match_all($pattern, $html, $matches);
$matches = $matches[1];
// 去重
$matches = array_unique($matches);
// 定義圖片保存路徑
$path = "./images/";
if(!file_exists($path)){
mkdir($path);
}
// 下載圖片
foreach($matches as $key => $value){
// 獲取图片名
$imgname = basename($value);
// 打開文件
$fp = fopen($path . $imgname, 'w');
// 設定 curl
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $value);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 下載圖片
curl_exec($ch);
curl_close($ch);
// 關閉文件
fclose($fp);
}
通過上述方法,您可以實現簡單高效的網頁圖片採集功能。根據實際需求,可對代碼進行調整優化。採集過程中如遇到圖片無法下載等問題,可針對網絡環境和權限等因素進行排查和調試。希望這篇教程能幫助您輕鬆掌握PHP 採集圖片的技巧。