ホームページ >バックエンド開発 >PHPチュートリアル >画像をクロールしてローカルに保存するための PHP のコード例
この記事では、PHP で画像をクロールしてローカルに保存するコード例を紹介します。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。
簡単な例を通じていくつかの php 関数の使用法を確認します
curl はネットワーク リクエストを送信します
preg_match 通常の一致
$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']));
$ch = curl_init(); curl_setopt($ch, CURLOPT, $opt); $out = curl_exec($ch); curl_close();一般的に使用される
CURLOPT 設定、その他の参考資料 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 に文字が見つかりました。ソース コードを確認すると、Web ページで gb2312 エンコーディングが使用されていることがわかりました。mb_convert_encoding または iconv を使用して、出力用に utf-8 エンコーディングに変換してください。
preg_match 通常の一致
<img id="bigImg" src="(?<src>http.*\.(?<ext>jpg|png))".*>.* すべて一致、(?8a11bc632ea32a57b3e3693c7987c420) グループ化を使用すると、$match['name'] を使用して目的の部分を簡単に取得できます 最後に $match ['src'] 画像の実際の URL を取得し、完了していても file_put_contents を通じて保存します
以上が画像をクロールしてローカルに保存するための PHP のコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。