2017-02-21 14 views
0

Я очищаю определенный сайт для определенных ссылок, которые я сохраняю на своем $ url_results массив. Но хотят, чтобы исключить добавление ссылки на массив, если лития кластер, с классом -список items__item, включает в себя ляющие> ляющих> ребенок пролета с классом -список items__item__notice.Как исключить результаты соскабливания в зависимости от детей с определенным классом с помощью простых HTML DOM и cURL?

Кластер Я выскабливание:

<li> 
    <a href="" data-lpurl=""> <!--The href I am scraping--> 
     <span class="list-items__item__position"></span> 
     <div class="list-items__item__title"> 
      <span class="list-items__item__notice"> <!--I don't want to add to my array if this span is present--> 
      </span> 
     </div> 
    </a> 
</li> 

Мой PHP функция выскабливание:

$items = $html->find('li[class=list-items__item]'); 
foreach($items as $post) { 
    $url_results[] = $url . ($post->children(0)->href); 
} 

Я использую Simple HTML DOM и локон скрести.

+0

этот атрибут класса не совсем верно. – pguardiario

+0

Это скопированные данные, поэтому я, к сожалению, не имею никакого контроля над тем, какие классы они используют. – user2304993

+0

Нет, я имел в виду, что это не соответствует классу в html – pguardiario

ответ

0

Я добавляю решение, с которым я пришел, чтобы он мог надеяться помочь другим, столкнувшись с аналогичной проблемой.

Я решил эту проблему, добавив Условный приговор, проверяя, был ли тег пустым, и если да, то добавьте HREF в мой массив, если нет, то ничего не делать, как показано ниже:

foreach($items as $post) { 
    if (empty($post->children(0)->children(1)->children(0)->plaintext)) { 
     $url_results[] = $url . ($post->children(0)->href); 
    } 
    else {} 
}