2014-03-28 2 views
1

그래서 div 클래스 안에 있고 div 클래스 안에는 내용이 필요하지만 다른 텍스트가있는 하나의 범위가있는 코드가 있습니다. 스팬 및 스팬 내부.div 안에 내용을 가져 오되 해당 div 안에있는 <span>을 건너 뜁니다. simple_html_dom

기본적으로이 코드

<div class="somecontent"> 
    23:45 
    <span>Tags: 
     <a href="link to somewhere"> tag1</a> 
     <a href="link to somewhere"> tag1</a> 
     <a href="link to somewhere"> tag1</a> 
    </span> 
</div> 

그래서 내가 범위와 해당 링크 내부에 무엇이 필요가 없습니다 것입니다. 나는 이것을 가지고있을 필요가있다.

23:45 

기본적으로 나는 단지 비디오의 시간을 얻을 필요가있다.

단순한 html_dom으로 페이지를 움켜 쥐고 있습니다. 그렇다면 내 솔루션은 무엇입니까?

+0

@pguarianrio가 질문을 해결 한 다음 질문을 확인하십시오. http://stackoverflow.com/questions/22631484/html-dom-parser-get-first-element/22632599#22632599 – Gunaseelan

+0

데이터를 스크랩하는 URL을 제공하면 정확한 문제가있는 곳을 찾을 수 있습니까? – Gunaseelan

+0

내가 게시 한 URL과 비슷한 것을했습니다. 이후 URL을 게시해야하는지 확실하지 않은 Im, 그것은 성인 사이트입니다. –

답변

0

당신은 다음을 수행 할 수 있습니다 : 당신이 사용하는 경우

$doc = str_get_html($html); 

foreach ($doc->find('div.somecontent') as $parent) { 
    foreach ($parent->find('text') as $node) { 
     if ($node->parent() === $parent) { 
      echo trim($node->plaintext); 
     } 
    } 
} 

이 쉬워집니다 PHP의 내장에서 DOMDocument 클래스입니다.

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

foreach ($xpath->query('//div/text()') as $node) { 
    echo trim($node->textContent); 
} 

XPath 식은 //div/text()<div> 안에있는 모든 텍스트 노드를 발견 : 당신은 단순히 당신이 필요로하는 텍스트를 검색하는 XPath 식을 사용할 수 있습니다. 찾고

+0

때때로 간단한 html dom과 함께 xpath를 사용할 수 있다면 [이 프로젝트] (https://sourceforge.net/projects/advancedhtmldom/)와 같을 것입니다 :'$ doc-> find ('// div/text() ')'- 저는 개인적으로 CSS를 선호합니다. – pguardiario

1

END_LINK하면 관심 :이 솔루션으로 나를 위해 일한

$html->find('.somecontent text', 0); 
+0

이 작동하지 않습니다. –

0

.

먼저 str_replace를 사용하여 somecontent 클래스의 모든 텍스트를 가져 와서 빈 내부 스팬을 바꿉니다.

   $get_duration = $video->find('div[class="somecontent"]', 0)->children(0); 
       $video_duration = str_replace($get_duration, '', $video->find('div[class="somecontent"]', 0)->innertext);