2012-07-17 3 views
0

웹 페이지의 내용을 검색하고 해당 페이지에 모니터링 할 특정 오류 키워드가 있는지 확인하려고합니다. (매번 사이트를 확인하기 위해 각 URL을 수동으로로드하는 대신 프로그래밍 방식으로이 작업을 수행하고 오류가 발생할 경우 플래그를 지정하기 바란다)처리 된 URL 내용 확인

XMLHttpRequest를 사용해 보았습니다. 페이지에서 "소스보기"를 볼 때와 같은 HTML 컨텐트를 얻을 수 있습니다. 그러나 내가 모니터하는 페이지는 셰어 포인트에서 실행되며 웹 파트는 동적으로 생성됩니다. 오류가 발생하면이 부분을로드 할 때 오류를 포함하지는 않지만 웹 파트에 대한 일반적인 경로 만 포함하도록 HTML을 플래그 지정할 수는 없다고 생각합니다.

cURL도 같습니다. DOMDocument에 대해 읽었을 때 DOMDocument가 코드를 처리하는지 또는 HTML을 계층 적 구조로 분해하는지 궁금합니다.

URL의 콘텐츠 만 갖고 싶습니다. (HTML이 아닌 IE에서 웹 사이트를 txt로 저장할 때 얻는 것과 마찬가지). 또는 HTML을 추가로 처리 할 수 ​​있다면 좋을 것입니다. 어떻게해야합니까? 어떤 도움이라도 대단히 감사하겠습니다. :)

+0

당신이 웹에서 HTML 태그를 제거 만 남아있는 데이터를 얻을 싶어 명확하게하기 위해? – Nish

+0

안녕하세요 Nish, 자바 스크립트가로드되고 콘텐츠가 생성 된 후 처리 된 콘텐츠를 가져오고 싶습니다. 자바 스크립트 및 기능이있는 뷰 소스가 아직 태그에서 제거되었습니다. 나는 자신을 더 잘 설명하기 위해 모범을보아야한다. :) – user1531773

답변

1

왜 HTML을 제거 하시겠습니까? 그것을 사용하는 것이 좋습니다! 당신이 그렇게하지 않으려면

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
$data = curl_exec($ch); 
curl_close($ch); 

// libxml_use_internal_errors(true); 
$oDom = new DomDocument(); 
$oDom->loadHTML($data); 

// Go through DOM and look for error (it's similar if it'd be 
// <p class="error">error message</p> or whatever) 
$errors = $oDom->getElementsByTagName("error"); // or however you get errors 
foreach($errors as $error) { 
    if(strstr($error->nodeValue, 'SOME ERROR')) { 
     echo 'SOME ERROR occurred'; 
    } 
} 

, 당신은 다만 할 수 있습니다

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
$data = curl_exec($ch); 
curl_close($ch); 
if(strstr($data, 'SOME_ERROR')) { 
    echo 'SOME ERROR occurred'; 
} 
+0

Hi Dow! 대답 해줘서 고마워! 나는 내가 쓴 사이트가 셰어 포인트 사이트이고 오류가있는 장소가 동적 인 콘텐츠이기 때문에 HTML을 제거해야한다고 생각한다. 소스보기에 콘텐츠가 표시되지 않습니다. 따라서 수표가이 문자열을 기반으로한다면 오류를 잡을 수 없을 것이라고 생각합니다. – user1531773

+0

소스의 내용을 볼 수 없습니까? 따라서 콘텐츠는 자바 스크립트에서 생성됩니까? 그럴 경우 더 어려워 질 것입니다. – Doa

+0

erm yes. 콘텐츠는 Javascript에서 제공됩니다. 콘텐츠를 검색 할 수있는 방법이 있습니까? – user1531773