Простой HTML DOM найти теги и получить данные по ссылке - PullRequest
0 голосов
/ 23 января 2019

Простой HTML DOM найти теги и извлечь данные из ссылки на страницу Привет, я простой HTML DOM, в основном мне нужно получить заголовок h2 и контент из ссылки (page / id / 1). Дело в том, что я получаю стек, получая данные со страницы. Формат должен быть таким же, как

  1. Название

форма контекста lik1, контент из ссылки5

  1. название 2

содержание по ссылке, содержание от 2

   <section class="level">
       <h2> title </h2>
       <a class="links" href="page/id/1">link1 </a>
       <a class="links" href="page/id/2">link2 </a>
       <a class="links" href="page/id/3">link3 </a>
       <a class="links" href="page/id/4">link4 </a>
       <a class="links" href="page/id/5">link5 </a>
   </section>
   <section class="level">
       <h2> title 2 </h2>
       <a class="links" href="page/id/7">link1 </a>
       <a class="links" href="page/id/8">link2 </a>
   </section>
   <section class="level">
       <h2> title 3  </h2>
       <a class="links" href="page/id/9">link2 </a>
       <a class="links" href="page/id/10">link3 </a>
   </section>

Я знаю, что это должно быть в этом направлении, любая помощь, ребята

   foreach ($html->find('h2') as $key => $value) { 
       echo $html->find('h2',0)->plaintext;
       //this is where Im stack getting the data from the link 
       foreach ( ) {
           echo data from the link example.com/page.php/id/1 
           echo data from the link example.com/page.php/id/2 
       }      
   }

1 Ответ

0 голосов
/ 24 января 2019

Вы можете найти <section> с именем класса level, используя find('section[class=level]') Тогда вы можете, например, зациклить дочерние узлы и проверить имя узла.

Чтобы получить только якоря, вы можете использовать find('section[class=level] a')

Например:

$html = new simple_html_dom();
$html->load($data);
$result = $html->find('section[class=level]');
foreach ($result  as $item) {
    foreach($item->childNodes() as $childNode) {
        if ($childNode->nodeName() === "h2") {
            echo $childNode->innertext . "<br>";
        }
        if ($childNode->nodeName() === "a") {
            echo $childNode->getAttribute("href") . "<br>";
        }
    }
}

Результат

 title 
page/id/1
page/id/2
page/id/3
page/id/4
page/id/5
 title 2 
page/id/7
page/id/8
 title 3  
page/id/9
page/id/10
...