문제

CSS 선택기로 XHTML 문서를 쿼리할 수 있는 PHP 클래스/라이브러리가 있습니까?CSS 선택기를 사용할 수 있다면 매우 쉽게 액세스할 수 있는 데이터를 찾기 위해 일부 페이지를 스크랩해야 합니다(jQuery가 나를 망쳤습니다!).어떤 아이디어가 있나요?

도움이 되었습니까?

해결책

더 인터넷 검색 후 (초기 결과는 그다지 도움이되지 않았습니다), 실제로 다른 사람들과 함께 Zend 프레임 워크 라이브러리가있는 것 같습니다.

다른 팁

XPath는 XML (및 XHTML) 노드에 액세스하는 상당히 표준적인 방법이며 CSS보다 훨씬 더 정밀도를 제공합니다.

다른 것:
http://querypath.org/

위대한 사람은 Symfony 2의 구성 요소입니다. cssselector parser소개. CSS 선택기를 XPath 표현식으로 변환합니다. 봐 =)

소스 코드

을 위한 jQuery 가장 흥미로운 사용자는 될 수 있습니다 jQuery의 항구에서 PHP, 그것은 phpquery. 라이브러리의 거의 모든 섹션이 포팅됩니다. 또한 포함됩니다 웹 브라우저 웹 스크래핑 전체 사이트의 경로/프로세스 (예 : 로그인 후 사용 가능한 데이터에 액세스)에 사용할 수있는 플러그인. 서버에서 웹 브라우저를 시뮬레이션합니다 (이벤트 및 쿠키도). 최신 버전에는 XML을 실험적으로 지원합니다 네임 스페이스 및 CSS3 "|" 선택자.

나는 결국 사용했다 PHP 쿼리 라이트, 그것은 매우 간단하고 필요한 모든 것이 있습니다.

문서 구문 분석을 위해 내가 사용하는 DOM.태그 이름(이 예에서는 "div")을 알고 있으면 문제를 매우 쉽게 해결할 수 있습니다.

 $doc = new DOMDocument();
 $doc->loadHTML($html);

 $elements = $doc->getElementsByTagName("div");
 foreach ($elements as $e){
  if ($e->getAttribute("class")!="someclass") continue;

  //its a div.classname
 }

DOM을 사용하여 문서의 모든 요소를 ​​한 번에 가져올 수 있는지 확실하지 않습니다...트리 순회를 수행해야 할 수도 있습니다.

나는 Mootools CSS 선택기 엔진을 기반으로 광산을 썼습니다. http://selectors.svn.exyks.org/. SimpleXML 확장 능력에 의존합니다 (따라서 읽기 전용).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top