Crawler는 인터넷에서 정보를 수집하도록 설계된 자동화 된 프로그램입니다. 브라우저 동작을 시뮬레이션하고 웹 페이지에 액세스하며 대상 데이터를 추출합니다. 강력한 서버 측 스크립팅 언어로서 PHP는 효율적인 크롤러 프로그램을 작성하는 데 사용될 수 있습니다.
크롤러의 첫 번째 단계는 HTTP 요청을 통해 대상 웹 페이지의 컨텐츠를 얻는 것입니다. PHP는 HTTP 요청을 보내는 다양한 방법을 제공합니다. 가장 간단하고 가장 일반적으로 사용되는 것은 file_get_contents () 함수입니다.
$url = "http://example.com";
$html = file_get_contents($url);
file_get_contents () 함수를 사용하여 웹 페이지의 HTML 소스 코드를 직접 얻고 변수 $ html 에 저장하십시오.
웹 페이지 소스 코드를 얻은 후 필요한 정보를 추출하려면 HTML을 구문 분석해야합니다. PHP의 내장 DomDocument 클래스는 XML 및 HTML 문서를 처리하는 데 이상적입니다.
$dom = new DOMDocument();
@$dom->loadHTML($html);
여기서 LoadHtml () 메소드는 후속 데이터 작업을 용이하게하기 위해 HTML 문자열을 DOM 객체로 변환하는 데 사용됩니다. HTML 파싱 중에 경고 메시지를 피하기 위해 @ 추가에주의하십시오.
XPath는 XML 및 HTML 문서에서 노드를 찾는 데 사용되는 쿼리 언어입니다. DomxPath 클래스와 결합하여 웹 페이지에서 대상 요소를 쉽게 찾아서 추출 할 수 있습니다.
$xpath = new DOMXPath($dom);
$elements = $xpath->query("//h1");
foreach ($elements as $element) {
echo $element->nodeValue;
}
위의 코드는 XPath 표현식 "// h1"을 통해 배치됩니다.
$url = "http://example.com";
$html = file_get_contents($url);
$dom = new DOMDocument();
@$dom->loadHTML($html);
$xpath = new DOMXPath($dom);
$elements = $xpath->query("//title");
if ($elements->length > 0) {
$title = $elements->item(0)->nodeValue;
echo $title;
} else {
echo "No title found";
}
이 코드는 먼저 웹 페이지 소스 코드를 요청한 다음 HTML을 구문 분석하고 마지막으로 xpath를 통해 찾습니다.