如何使用Simple HTML DOM和cURL取决于具有特定类的子项,从而排除抓取结果?

时间:2017-02-21 15:33:09

标签: php curl web-scraping simple-html-dom

我正在抓取某个网站的特定链接,我将其保存到 $ url_results 数组中。但是,如果 li 群集( list-items__item )包含child-> child-> child span ,类别为 list-items__item__notice

群集我正在抓取:

<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和cURL来抓。

1 个答案:

答案 0 :(得分:0)

我通过添加if-sentence来检查问题,检查标记是否为空,如果是,请将href添加到我的数组中,如果没有,则不执行任何操作,如下所示:

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