ホームページ >バックエンド開発 >PHPチュートリアル >PHP が csdn ホームページのニュースを収集_PHP チュートリアル
function csdn(){//$uid采集文章の分类
$url="http://www.csdn.net";
$ch =curl_init();
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch,CURLOPT_ENCODING ,'utf8');
$content =curl_exec($ch);
preg_match_all("/http://w*.csdn.net/a/d*/d*.html/",$content,$match);
$weburl=$match[0];
$weburl=array_unique($weburl);
$j=0;
foreach($weburl as $i=>$vo){
curl_setopt ($ch, CURLOPT_URL,$vo);
$content =curl_exec($ch);
preg_match_all("/
if(!emptyempty ( $match[2][1])){
$list[$j]['content']=$match[2][1];
$list[$j]['title']=$match[1][0];
$j++;
}
}
print_r($list);
}
?>
すぐに見えます
$list は収集された新しいリストであり、形式は 1 つの二グループです
如果要把他保存你的データ库,我就不解释了...
この中では、データー库の文章が重複しているかどうかを判断することに注意してください
md5 加密後、你データプールの文章と比較することができます、若真。
注意这里希望大家复制不要手工复制,请查看源代码方法复制....表面の代コードの外観が似ているため
如果你是thinkphp的话..www.2cto.com..那就跟我的一样了...下贴出更方便的代直接追加データ库, 重複データ判断を含む:
function csdn($uid){//$uid采集文章の分类
$url="http://www.csdn.net";
$ch =curl_init();
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch,CURLOPT_ENCODING ,'utf8');
$content =curl_exec($ch);
preg_match_all("/http://w*.csdn.net/a/d*/d*.html/",$content,$match);
$weburl=$match[0];
$weburl=array_unique($weburl);
$j=0;
foreach($weburl as $i=>$vo){
curl_setopt ($ch, CURLOPT_URL,$vo);
$content =curl_exec($ch);
preg_match_all("/
if(!emptyempty($match[2][1])){
$list[$j]['content']=$match[2][1];
$list[$j]['title']=$match[1][0];
$j++;
}
}
$db=M('ニュース');
$news=$db->where("uid=".$uid)->select();
$flag=true;
foreach($list as $i=>$vo){
foreach($news as $j=>$value){
if(md5($value['title'])==md5($vo['title'])){
$flag=false;
壊す;
}
}
if($flag){
$vo['uid']=$uid;
$vo['date']=date('Y-j-m H:i:s');
$vo['author']=セッション::get("管理者");
$vo['iscommand']=1;
$rs=$db->add($vo);
}
$flag=true;
}
}
?>
zouhao619的专栏
から抜粋