2010-07-13 4 views

답변

0

일반적으로 cURL을 사용하여 페이지를 스크래핑하여 처리합니다. 일련의 페이지를 연속적으로 스크래핑하는 경우, curl_multi 패밀리를 사용하여 병렬로 가져 오는 것이 좋습니다. 페이지의 특정 부분을 찾으려면 SimpleXMLElement에 HTML 문서를로드하고 xpath을 사용하여 특정 데이터를 쿼리 할 수 ​​있습니다.

이 솔루션의 유일한 문제점은 페이지에서 AJAX 콘텐츠를 다듬어야한다는 것입니다. cURL은 서버와 만 상호 작용하므로 클라이언트 측 JavaScript를 트리거 할 수 없습니다. 일부 AJAX 애플리케이션은보고있는 AJAX 콘텐츠와 동일한 서버 측을 가지고 있습니다 (예 : http://example.com#testhttp://example.com/test으로 번역 될 수 있음). 작업중인 사이트에 이러한 유형의 매핑이 없으면 AJAX 콘텐츠가로드되는 URL을 파악하고 cURL을 사용하여 해당 URL을 직접 스크래핑 할 수 있습니다.

고급 클라이언트 측 기능이 필요한 경우 Selenium을 조사해야합니다. "Selenium screen scrape"에 대한 Google의 검색 결과는 interesting results입니다. PHPUnit에 셀렌 통합이 있다는 것을 알았습니다.

AJAX 페이지를 스크랩하는 화면을 다루는 또 다른 질문이 있습니다. How do you scrape AJAX pages?

관련 문제