注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天边云E家 shaoruisky

IT博文共享,知识的海洋

 
 
 

日志

 
 

PHP 抓新浪rss新闻  

2013-10-16 17:40:25|  分类: 网页设计 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
本文转载自守望天使《 PHP抓新浪rss新闻》
<?php  
//抓取网页内容  
set_time_limit(0);  

$line = file_get_contents("http://rss.sina.com.cn/sports/basketball/nba.xml");   
$line = strstr( $line, "<item>");  

$line=explode("</item>",$line);  

$count=count($line);  
for($i=0;$i<$count;$i++){  
    eregi ("<pubDate>(.*)</pubDate>",$line[$i],$time);  
    //取得链结  
    if (eregi ("<link>(.*)</link>",$line[$i],$out)) {   
        $news = file_get_contents("$out[1]");  
        if(eregi ("<h1>(.*)</h1>",$news,$title)){       //匹配标题  
            preg_replace("/ /","",$title[1]);       //去除标题中的空格  
            $title[1] = trim($title[1]);  
            $title[1]=strip_tags($title[1]);                    //去除标题中的的HTML标记  
            //$title[1] = addslashes($title[1]);  

            //检查是否实视频,是视频则不抓取  
            if(strpos($title[1],"视频",0)!==flase){  
                echo "不抓取视频!";  
                //exit;  
                return false;  
            }  
            echo $title[1];  
            echo "<br>";  
        }else{  
            $title[1]="";  
        }  
          
        $dt=getdate();  
        $hours=$dt[hours];  
        $publish_time=$dt[year]."-".$dt[mon]."-".$dt[mday]."-".$hours."-".$dt[minutes]."-".$dt[seconds];  
        if($title[1]!=""){  
            $sql_title="select title from news where title='$title[1]'";  
            $result=$DB->fetch_one_array($sql_title);  
            if(empty($result)){  

                //取出正文部分  
                $news = strstr($news,"<!--正文内容开始-->");  
                $news = explode("<!--正文内容结束-->", $news);  



                //匹配正文内容  
                if(eregi ("<p>(.*)</p>",$news[0],$content)){  
                    echo $content[1];  
                    echo "<br>";  
                }else{  
                    $content[1]="";  
                }  


                //匹配图片路径  
                $picture_name="";  
                $img="";  
                $news=explode("border",$news[0]);  
                for($j=0;$j<count($news);$j++){  
                    if(preg_match("/http:\/\/i(.*)\.(jpeg|png|jpg)/i",$news[$j],$picture)){  
                        $img[$j]=GrabImage($picture[0],"");   
                              
                        if($img[$j]){  
                            $imgpath[$j]=dirname(__FILE__)."/pictures/".$img[$j];   
                            echo '<pre><img src='.$imgpath[$j].'></pre>';   
                        }else{  
                            $img[$j]="";  
                        }  
                    }else{  
                        $picture[0]="";  
                        $img[$j]="";  
                    }  
                    $picture_name.=$img[$j];  
                }  

            }     
        }  
    }  
}  

?>  


<?php  
// Function: 获取远程图片并把它保存到本地  
// $url 是远程图片的完整URL地址,不能为空。  
// $filename 是可选变量: 如果为空,本地文件名将基于时间和日期自动生成.  
function GrabImage($url,$filename="") {   
    if($url==""){  
        return false;  
    }  
    if($filename=="") {   
        $ext=strrchr($url,".");   
        $temext = strrchr(strtolower($url),".");   
        if($temext!=".jpg"&$temext!=".jpeg"){  
            return false;  
        }  
        $filename=date("dMYHis").$ext;  
        $filepath=dirname(__FILE__)."/pictures/".$filename;   
    }   

    ob_start();   
    readfile($url);   
    $img = ob_get_contents();   
    ob_end_clean();   
    $size = strlen($img);   

    $fp2=fopen($filepath, "a");   
    fwrite($fp2,$img);   
    fclose($fp2);   

    return $filename;   
}   
?>
  评论这张
 
阅读(82)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016