최근 PHP를 사용하여 HTML 구문 분석이 필요한 크롤러를 작성하려고 합니다. sourceforge에서 jQuery와 유사한 방식으로 CSS 선택기를 통해 지정된 DOM 요소를 반환할 수 있는 PHP Simple HTML DOM Parser라는 프로젝트를 찾았습니다. 매우 강력합니다.
먼저 프로그램 시작 부분에 simple_html_dom.php 파일을 소개합니다.
코드를 복사합니다. 코드는 다음과 같습니다.
include_once('simple_html_dom.php')
PHP Simple HTML DOM Parser는 3가지 유형을 제공합니다
DOM 객체를 생성하는 방법은 다음과 같습니다.
// 문자열에서 DOM 객체를 생성합니다
$html = str_get_html('
Hello!< ;/body> html>');
// URL에서 DOM 개체 만들기
$html = file_get_html('http://www.google.com/')/ / HTML 파일에서 DOM 개체 생성
$html = file_get_html('test.htm')
DOM 개체를 가져온 후 다양한 작업을 수행할 수 있습니다.
코드 복사 코드는 다음과 같습니다. 다음과 같습니다:
// 모든 앵커 찾기, 요소 객체의 배열 반환
$ret = $html->find('a')
// (N)번째 앵커 찾기, 요소 반환 객체 또는 찾을 수 없는 경우 null(0 기준)
$ret = $html->find('a', 0)
// 마지막 앵커를 찾고 요소 객체를 반환하거나 찾을 수 없는 경우 null을 반환합니다(0 기준). )
$ret = $html-> ;find('a', -1)
// id 속성이 있는 모든
찾기
$ret = $html->find( 'div[id]');
// id=foo인 모든
찾기
$ret->find('div[id=foo]');
여기에서는 다양한 CSS 선택기를 사용할 수 있습니다. jQuery의 DOM 조작처럼 매우 편리합니다. 또한 텍스트와 주석의 내용을 가져오는 두 가지 특수 속성이 있습니다.
코드 복사 코드는 다음과 같습니다.
// 모든 텍스트 블록 찾기
$es = $html->find( 'text') ;
// 모든 주석() 블록 찾기
$es = $html->find('comment')
물론, 여전히 jQuery와 유사하게, PHP Simple HTML DOM Parser는 체인 작업과 DOM 요소에 액세스하는 다양한 간단한 방법도 지원합니다.
코드 복사 코드는 다음과 같습니다.
// 예시
echo $html ->find( "#div1", 0)->children(1)->children(1)->children(2)->id
// 또는
echo $html; ->getElementById( "div1")->childNodes(1)->childNodes(1)->childNodes(2)->getAttribute('id')
성명:본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.