>백엔드 개발 >PHP 튜토리얼 >PHP 웹 크롤링 기본 튜토리얼: cURL 라이브러리를 사용하여 웹 사이트에 액세스

PHP 웹 크롤링 기본 튜토리얼: cURL 라이브러리를 사용하여 웹 사이트에 액세스

WBOY
WBOY원래의
2023-06-13 15:38:051802검색

인터넷이 발전하고 데이터가 증가함에 따라 웹 크롤러는 인터넷 정보를 얻는 중요한 방법 중 하나가 되었습니다. 웹 크롤러는 네트워크 요청을 통해 웹 사이트에 접속하여 웹 사이트의 정보를 크롤링하고 이를 처리 및 분석하는 자동화된 프로그램입니다. 이번 경우에는 PHP로 기본 웹 크롤러를 작성하는 방법, cURL 라이브러리를 사용하여 크롤링이 필요한 웹사이트에 접속하고, 획득한 정보를 처리하는 방법을 소개하겠습니다.

  1. cURL 라이브러리 설치

cURL 라이브러리는 명령줄에서 작동하는 URL 변환 도구를 위한 매우 강력한 도구이며 HTTP/HTTPS/FTP/TELNET과 같은 네트워크 프로토콜도 지원합니다. cURL 라이브러리를 사용하면 쉽게 웹 데이터를 크롤링하고, FTP, HTTP POST 및 PUT 데이터를 통해 파일을 업로드하고, 기본, 다이제스트 또는 GSS-Negotiate 인증 방법을 사용하여 원격 사이트 리소스에 액세스할 수 있습니다. cURL 라이브러리는 매우 편리하고 사용하기 쉽기 때문에 웹 크롤러 작성에 널리 사용됩니다.

이 튜토리얼에서는 CURL 확장을 사용하여 cURL을 사용하는 방법을 시연하므로 먼저 PHP에 cURL 확장 라이브러리를 설치해야 합니다. 다음 명령줄을 사용하여 cURL 확장을 설치할 수 있습니다.

sudo apt-get install php-curl

설치 후 확장 라이브러리가 정상적으로 실행될 수 있도록 php-fpm 서비스를 다시 시작해야 합니다.

  1. 기본 크롤러 스크립트 뼈대

다음으로 지정된 URL에 액세스하여 URL 웹 페이지의 일부 기본 정보를 얻는 기본 웹 크롤러를 작성하겠습니다. 다음은 기본 크롤러 스크립트 뼈대입니다.

<?php
$curl = curl_init();           
$url = "https://www.example.com/";
curl_setopt($curl, CURLOPT_URL, $url);     
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);  
curl_close($curl);       
echo $result;
?>

위 코드는 다음을 수행합니다.

  • cURL 세션을 초기화합니다.
  • 정보를 추출하려는 URL을 설정하세요.
  • cURL이 데이터를 화면에 직접 출력하는 대신 데이터를 반환하도록 옵션을 설정합니다.
  • 요청을 실행하고 데이터를 얻으세요.
  • cURL 세션을 해제하세요.

필요에 따라 컬_setopt 옵션을 사용자 정의할 수도 있습니다. 예를 들어, 다음 코드 줄을 사용하여 시간 제한을 설정하는 옵션을 추가할 수 있습니다.

curl_setopt($curl, CURLOPT_TIMEOUT, 5); // 5秒超时

또한, 웹 사이트가 요청될 때 요청을 보내는 브라우저를 시뮬레이션하기 위해 컬_setopt 옵션을 사용하여 HTTP 헤더를 설정할 수 있습니다. 쿠키를 설정해야 하는 경우, 컬_setopt 옵션을 사용하여 쿠키 자리 표시자를 설정하거나 cURL 쿠키에서 관련 기능을 사용할 수 있습니다.

데이터를 얻은 후 이를 추출, 구문 분석 및 필터링해야 할 수도 있습니다. 이 과정에서 PHP의 문자열 처리 기능, 정규식 또는 기타 구문 분석 라이브러리를 사용해야 할 수도 있습니다.

  1. 예: 대상 웹사이트에서 정보 추출

웹 크롤러 작성 과정을 더 잘 이해하기 위해 다음은 웹사이트에서 정보를 추출하는 방법을 보여주는 예입니다. 본 웹사이트(www.example.com)는 의미 있는 데이터를 얻을 수 있는 테스트 웹사이트입니다.

먼저, 지정된 웹사이트에서 데이터를 가져오기 위해 cURL 라이브러리를 사용해야 합니다. 다음은 데이터를 가져오는 데 사용되는 코드 조각입니다.

<?php
$curl = curl_init();
$url = "https://www.example.com/";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
echo $result;
?>

위 코드를 실행하면 www.example.com의 전체 HTML 콘텐츠가 출력됩니다. 웹사이트. 획득한 웹사이트에서 특정 정보를 추출해야 하므로 HTML을 구문 분석해야 합니다. 다음 코드와 같이 DOMDocument 클래스를 사용하여 HTML을 구문 분석합니다.

<?php
$curl = curl_init();
$url = "https://www.example.com/";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
curl_close($curl);
$dom = new DOMDocument;
$dom->loadHTML($result);
foreach ($dom->getElementsByTagName('a') as $link) {
    echo $link->getAttribute('href'), PHP_EOL;
}
?>

위 코드는 DOMDocument 클래스를 사용하여 HTML을 로드하고 getElementsByTagName() 메서드를 사용하여 모든 요소를 가져옵니다. 그런 다음 getAttribute() 메소드를 사용하여 해당 요소의 href 속성을 가져올 수 있습니다. 코드를 실행하면 출력이 HTML 태그에 포함된 URL을 구문 분석하고 출력하는 것을 볼 수 있습니다.

  1. 요약

이 글에서는 cURL 라이브러리를 사용하여 기본 웹 크롤러를 작성하는 방법을 소개했습니다. 또한 웹사이트에서 데이터를 추출하는 방법과 HTML 문서를 구문 분석하는 방법도 다루었습니다. 이러한 기본 개념을 이해하면 웹 크롤러의 작동 방식을 더 잘 이해하고 직접 작성을 시작할 수 있습니다. 물론 웹 크롤러 작성에는 복잡한 기술과 문제가 많이 있지만 이 기사가 웹 크롤러 작성 여정을 시작하는 데 도움이 되기를 바랍니다.

위 내용은 PHP 웹 크롤링 기본 튜토리얼: cURL 라이브러리를 사용하여 웹 사이트에 액세스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.