PHP에서 HTML DOM 파싱

PHP 내부에서 특정 web page를 읽어서 뭔가를 처리하는 일을 할 때 사용하는 방법이다. 기존에는 나름대로 string 파싱을 해서 사용했는데, 성능도 안 나오고 불편하여 JQuery 처럼 사용할 수 있는 방법을 찾아봤더니, 뜻이 있는 길에 길이 있다고.. 누군가 이미 잘 만들어 놓은 라이브러리가 있었다.

이름하여 simple_html_dom.php 라는 파일이다. (http://simplehtmldom.sourceforge.net/) 이 파일 하나만 include하여 사용하면 간단하게 dom 구조를 읽을 수 있다.

사용 방법은 다음과 같다.

// Create DOM from URL or file
$html = file_get_html('http://www.google.com/');

// Find all images
foreach($html->find('img') as $element)
       echo $element->src . '<br>';

// Find all links
foreach($html->find('a') as $element)
       echo $element->href . '<br>';

$array = $html->find(“div div table tr td”); 식의 찾기가 가능하며, 찾은 결과를 array로 리턴해준다. 위 예제와 같이 foreach로 전체 탐색을 하면서 주로 사용하면 되고, $array[0] 식의 접근도 물론 가능하다.

간단하게 페이지를 파싱할 수 있으니 너무 좋은 것 같다. 🙂

댓글 남기기