PHP SimpleHtmlDom Parser로 HTML 파싱하기

by 조쉬 posted Jan 12, 2023
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

http://simplehtmldom.sourceforge.net/

 

https://github.com/samacs/simple_html_dom

 

다운로드 링크 : http://sourceforge.net/projects/simplehtmldom/files/latest/download?source=files

 

해당 홈에 나와있는 예제입니다.

 

간단한 주석을 붙입니다.

 

//html 을 가져오고

$html = file_get_html('http://www.google.com/');            



// 모든 이미지태그를 찾아냅니다.

foreach($html->find('img') as $element) 

       echo $element->src . '<br>';                                  



// 모든 a태그를 찾아내어 href속성을 뿌려줍니다.

foreach($html->find('a') as $element)                             

       echo $element->href . '<br>';



// 컨텐츠내에 텍스트들만 가져옵니다.

echo file_get_html('http://www.google.com/')->plaintext; 



// css jquery 많이 만져보셨다면 선택자는 거의 동일합니다.

//몇번째 a태그 같은 경우도 가져올수 있구요

foreach($html->find('div.article') as $article) {

    $item['title']     = $article->find('div.title', 0)->plaintext;

    $item['intro']    = $article->find('div.intro', 0)->plaintext;

    $item['details'] = $article->find('div.details', 0)->plaintext;

    $articles[] = $item;

}



//가져오기전 해당 태그내의 텍스트도 이렇게 간단히 변경가능합니다.

$html->find('div[id=hello]', 0)->innertext = 'foo';



예제

<?php

include_once('simplehtmldom_1_5/simple_html_dom.php');

// 네이버 html을 가져온다

$html = file_get_html('http://www.naver.com/');



// 모든 이미지태그를 찾고

foreach($html->find('img') as $element) {

       echo $element->src . '<br>';

}       

 

// 모든 a태그를 찾아내어 href속성을 뿌려줍니다.

foreach($html->find('a') as $element) {                            

       echo $element->href . '<br>';

}    

?>