> 백엔드 개발 > PHP 튜토리얼 > 이미지를 크롤링하고 로컬에 저장하는 PHP의 코드 예제

이미지를 크롤링하고 로컬에 저장하는 PHP의 코드 예제

不言
풀어 주다: 2023-04-04 21:26:01
앞으로
3956명이 탐색했습니다.

이 기사는 PHP를 사용하여 이미지를 크롤링하고 로컬에 저장하는 방법에 대한 코드 예제를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

간단한 예제를 통해 여러 PHP 함수의 사용법을 검토하세요

사용된 함수 또는 지식 포인트

  • curl이 네트워크 요청을 보냅니다

  • preg_match 정규 매칭

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;]));
로그인 후 복사

효과

이미지를 크롤링하고 로컬에 저장하는 PHP의 코드 예제

설명

curl이 요청을 보냅니다

PHP에서 컬 연결을 설정하는 단계는 일반적으로 초기화, 옵션 설정, 작업 수행 및 연결 해제입니다.

$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을 직접 출력했는데, 소스코드를 보니 깨져있는 문자가 발견되었습니다. 웹 페이지가 gb2312 인코딩을 사용하는 것을 발견했습니다. mb_convert_encoding 또는 iconv를 사용하여 utf-8 인코딩 및 출력으로 변환합니다.

preg_match 정규 일치

소스 코드를 살펴보니 필요한 이미지 태그가

정규 표현식

<img id="bigImg" src="(?<src>http.*\.(?<ext>jpg|png))".*>
로그인 후 복사

.*은 모두 일치합니다. (?) 그룹화를 이용하면 편리합니다. $match['name']을 사용하여 원하는 부분을 가져옵니다

마지막으로 $match['src']가 이미지의 실제 URL을 가져와서 file_put_contents를 통해 저장하면 끝입니다


위 내용은 이미지를 크롤링하고 로컬에 저장하는 PHP의 코드 예제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
php
원천:cnblogs.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿