インターネットコンテンツの濃縮により、インターネット上で多数の高品質の画像リソースが登場しています。多くのシナリオでは、ランドスケープ写真、アート作品など、指定されたWebサイトからバッチで写真を収集する必要があります。この記事では、PHPを使用してスクリプトを作成してWebサイトから高解像度の写真を自動的に収集する方法を示します。
コレクションの前に、ターゲットWebサイトの構造を最初に分析する必要があります。通常、画像はIMGタグとしてページに埋め込まれています。 Webページソースコードを観察することにより、画像アドレスのパターンを見つけてから、ターゲット画像へのリンクを抽出できます。
コレクションのアイデアを明確にした後、PHPのCurl関数を使用してWebページソースコードを取得し、正規表現を介して画像リンクを一致させ、最後に画像をループにダウンロードして保存します。
// 設定 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);
}
上記の方法により、シンプルで効率的なWebイメージコレクション機能を実現できます。実際のニーズに応じて、コードを調整して最適化できます。収集プロセス中に画像をダウンロードできないなどの問題が発生した場合、ネットワーク環境やアクセス許可などの要因を確認およびデバッグできます。このチュートリアルが、写真のPHPコレクションのスキルを簡単に習得できることを願っています。