PHP web Crawler打印两次提取每个语句

时间:2017-02-21 04:19:29

标签: php

我一直在研究这个网络爬虫。它工作正常,只是它打印每一个提取的语句两次。

我尝试在每个循环中回显,但似乎需要一些开箱即用的视角。

我的代码如下:

<?php
    require_once('dom/simple_html_dom.php'); 
    $html = file_get_html('https://www.uworld.com/Forum/topics.aspx?ForumID=1&gid=1');
    $elementCount=0;
    foreach($html->find('h3.h3-forum-title a') as $element) {
        $elementCount++;
    $element->href = "http://www.studentdoc.com/phpBB2/" . $element->href; 
    echo '<li target="_blank" class="itemtitle">';
    if($elementCount < 5 && $elementCount > 2 && rand(0,1) == 1) {
      echo '<span class="item_new">new</span>';
    }
    echo $element;
    echo '</li>';                           
    if($elementCount==12){
           break;
    }
}
?>

感谢任何帮助..

1 个答案:

答案 0 :(得分:0)

出现此问题是因为该元素在网页上存在两次。您必须缩小find这样的参数:

foreach($html->find('div.hidden-lg div div div div h3.h3-forum-title a') as $element) {
    // process the elements
}