采集文章,从标题对比NNNN个网站, 第一次采集,入库个标题为 Aaaaa 的文章  在采集其他网站,他也有这个文章。这里简称在次采集  当在次采集后,发现标题  Aaaaaa 或者 Aaaa 时  使用 similar_text 来对比,大于80的就入库,同时更新次文章以被在次采集的状态。  加入遇到相同差不多的标题,我想,如果标题的对比值 similar_text 越大的,就入库。这个有什么想法。  我应该怎么写//$a是采集回来的,第二次采集的,在次采集的,标题。
$a="2.请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德";
//二次采集的内容。
$n="ddddddddddddddd";//为了避免浪费太对的资源,查询sql 这个栏目最新的5条记录做对比。
$sql='select * from new where a='$a' order by id desc 5':
$c=$mysqli->query($sql);//开始循环5条记录的对比,
while($row=$c->fetch_assoc()){
   //标题
   $d=$row['a'];
   //
   similar($a,$d,$j)
   if($j>80){
      执行入库 $n 代码;
      //在次采集一次就足够了,其他的丢弃,
      exit;
   }
}
  
试问,我这样写,是当遇到大于80以上的入库。如果我不exit while的话。
下边在遇到 比上一次更大的话,我想选择对比值最大的入库。思路理不清了。
同时到现在我也不知道我表达的清楚不清楚,
麻烦大家帮我理理看看。。

解决方案 »

  1.   

    <?php//$a是采集回来的,第二次采集的,在次采集的,标题。
    $a="2.请对您的言行负责,并遵守中华人民共和国有关法律法规,尊重网上道德";
    //二次采集的内容。
    $n="ddddddddddddddd";
     
    //为了避免浪费太对的资源,查询sql 这个栏目最新的5条记录做对比。
    $sql='select * from new where a='$a' order by id desc 5':
    $c=$mysqli->query($sql);
     
    // 记录循环5条记录的对比,
    $rows = array(); 
    while($row=$c->fetch_assoc()){
    $rows[] = $row;
       
    }$contents = array(); //二次采集的所有内容组成的数组
    $max_index = -1;
    $max_similar = 0;
    foreach($contents as $index => $content) { //$a是采集回来的,第二次采集的,在次采集的,标题。
    $a=$content['标题']; foreach($rows as $row) {
    $similar = -1;
    //标题
    $d=$row['a'];
    //
    similar($a,$d,$similar);
    if($similar>80 && $similar > $max_similar){
    $max_index = $index;
    }
    }
    }// 找出最大的索引文章
    if($max_index > -1) {
    //二次采集的内容。
    $n=$contents[$max_index];
    //执行入库 $n 代码;
    }