采集器的基本实现代码

 

如果采集下面链接的内容。http://my.mmosite.com/umge/Blog/Item/525f4dc178610c4f07321cc0925cda19.html这是一篇文章,
假设我们只要采集它的文章标题和文章内容。请写出实现代码。

PHP代码
  1. <?php   
  2. /*  
  3. 如果采集下面链接的内容。http://my.mmosite.com/umge/Blog/Item/525f4dc178610c4f07321cc0925cda19.html这是一篇文章,  
  4. 假设我们只要采集它的文章标题和文章内容。请写出实现代码。  
  5. */  
  6.   
  7.   
  8. //$startStr1,$endStr1 标题采集开始处与结束外标记   
  9. $startStr1=‘<td width="93%" class="blogtitle">  ‘;   
  10. $endStr1=‘</td>  
  11.                 </tr>  
  12.                 <tr>  
  13.                   <td class="subtitle" style="background-position:0px 32px">’;   
  14.   
  15. //$startStr2,$endStr2 文章内容采集开始处与结束外标记   
  16. $startStr2=‘<div class="textMain">’;   
  17. $endStr2=‘</div>  
  18.                           <br></td>  
  19.                       </tr>  
  20.                       <tr>  
  21.                         <td colspan="2" class="padding text4" style="word-break : normal; overflow:hidden; padding:25px 15px 10px 15px" id="textMain"><div align="center"><a href="#comment">’;   
  22.   
  23. $filename="http://my.mmosite.com/umge/Blog/Item/525f4dc178610c4f07321cc0925cda19.html";   
  24.   
  25. $mmosite=new mmosite($filename);   
  26. echo $mmosite->show($startStr1,$endStr1);   
  27. echo $mmosite->show($startStr2,$endStr2);   
  28.   
  29.   
  30.   
  31.   
  32.   
  33. //采集处理类   
  34.   
  35.   
  36. class mmosite{   
  37.   
  38.     public function __construct($filename)   
  39.     {   
  40.         $this->filename=$filename;   
  41.     }   
  42.   
  43.     function go($contents,$startStr,$endStr)   
  44.     {   
  45.         $startStr=str_replace("\r\n","",$startStr);   
  46.         $endStr=str_replace("\r\n","",$endStr);   
  47.         $contents=str_replace("\r\n","",$contents);   
  48.   
  49.         preg_match_all( "@" . preg_quote($startStr) . "(.*?)". preg_quote($endStr) ."@is"$contents$tpl );        
  50.         $content = $tpl[1];       
  51.         $content = implode(""$content );   
  52.         return $content;   
  53.     }   
  54.   
  55.     function open()   
  56.     {   
  57.         $handle=fopen($this->filename, "r");   
  58.         $this->contents=stream_get_contents($handle);   
  59.         fclose($handle);   
  60.     }   
  61.   
  62.     function show($startStr,$endStr)   
  63.     {   
  64.         $this->open();   
  65.         return $this->go($this->contents,$startStr,$endStr);   
  66.     }   
  67. }   
  68.   
  69. ?>