2013-10-03 5 views
0

페이지의 두 번째 태그부터 마지막 ​​태그의 내용을 가져 오려고합니다. 나는 그것을 찾을 수는 없지만 모든 것을 배열에 집어 넣고 마지막 요소에서 하나를 세는 것이 아니라 그 순서대로 두 번째 태그를 찾기 위해 아래에서 위로 파싱 할 수 있기를 바랬다. 거꾸로 작동하는 이유는 내가 끌어 당기는 페이지가 동적이어서 내가 원하는 것보다 더 많은 태그가있을 수 있기 때문입니다.간단한 HTML DOM 뒤로 구문 분석

답변

0

거꾸로 구문 분석 할 방법이없는 것 같아서 배열의 모든 태그를 가져 와서 count()로 총을 얻은 다음 총 수보다 적은 수의 배열에 액세스하여 다음을 사용했습니다. 요소의

$html = $datain->find('a'); 
$html_ind = $html[count($html)-2]; 
$result = $html_ind->plaintext; 
1

동적 페이지의 경우 요청한 시간이 '정적'이어야하지만 다음에 변경 될 수 있습니다. 역순으로 페이지를 구문 분석하는 것은 타당하지 않으며, 지금까지 내가 아는 한, HTML 페이지에 대한 역순 파서 알고리즘은 없습니다.

대부분의 경우 동적 페이지는 상대적으로 '정적'이며 페이지 머리글은 항상 맨 위에 있으며 바닥 글은 항상 하단에 있습니다.

'정적'태그가 마지막 하나와 관련이 있는지 확인하는 것입니다.

이 stackoverflow 페이지 하단에 전체 저작권 정보를 표시한다고 가정합니다. 이것은 저작권 정보가이 페이지의 두 번째 태그에서 두 번째 태그에 가까운 것으로 가정되어 적절한 가정입니다.이 페이지는 분명 동적입니다.

id는 다음과 같습니다. // * [@ id = "copyright"] (실제로는 xpath이고 id가 아니지만 여기서는 중요하지 않습니다.) 이 페이지의 소스 파일을 살펴 보거나 파이어 버그 (firebug) 나 digpage와 같은 도구를 사용하기 만하면됩니다. 그리고 id (xpath)는 비교적 정적입니다.

여기에 귀하의 질문에 대답 할 때이 페이지에 대한 답변이 없습니다. 그러나,이 게시물을 읽을 때 내 대답은이 페이지에 삽입되고 페이지가 확실히 변경됩니다. 그러나 저작권 정보의 xpath는 여전히 // * [@ id = "copyright"]입니다. 즉, digpage는 여전히 올바른 태그를 얻을 수 있습니다.

site design/logo © 2013 stack exchange inc; user contributions licensed under cc-wiki 
      with attribution required 

자신 (http://www.digpage.com/utility)에 의해 다시 시도 할 수 있습니다, 그것은 변경되지 않습니다 : 내가 답을 제출하기 전에 여기

내가 digpage에서 얻을 저작권 informatin입니다.