网站采集器介绍

常用的网络采集器主要分为桌面版和服务器版:桌面版是基于window等平台,通过本地带宽来进行资料采集与发布程序,主要代表有“火车头网站采集器”和 “EditorTools”;服务器版是采用PHP或ASP编程,运行于Linux或windows主机,通过服务器带宽来进行资料采集与发布程序,主要 代表有“小蜜蜂网站采集器”。两大类采集器孰优孰劣不言而喻

PHP采集程序中常用的函数

Java代码  收藏代码

  1. <?php  

  2. //去除HTML标记  

  3. function Text2Html($txt){  

  4.     $txt = str_replace("  "," ",$txt);  

  5.     $txt = str_replace("<","&lt;",$txt);  

  6.     $txt = str_replace(">","&gt;",$txt);  

  7.     $txt = preg_replace("/[\r\n]{1,}/isU","<br/>\r\n",$txt);  

  8.     return $txt;  

  9. }  

  10.   

  11. //清除HTML标记  

  12. function ClearHtml($str){  

  13.     $str = str_replace('<','&lt;',$str);  

  14.     $str = str_replace('>','&gt;',$str);  

  15.     return $str;  

  16. }  

  17. //相对路径转化成绝对路径  

  18. function relative_to_absolute($content, $feed_url) {  

  19.     preg_match('/(http|https|ftp):\/\//', $feed_url, $protocol);  

  20.     $server_url = preg_replace("/(http|https|ftp|news):\/\//""", $feed_url);  

  21.     $server_url = preg_replace("/\/.*/""", $server_url);  

  22.   

  23.     if ($server_url == '') {  

  24.         return $content;  

  25.     }  

  26.   

  27.     if (isset($protocol[0])) {  

  28.         $new_content = preg_replace('/href="\//''href="'.$protocol[0].$server_url.'/', $content);  

  29.         $new_content = preg_replace('/src="\//''src="'.$protocol[0].$server_url.'/', $new_content);  

  30.     } else {  

  31.         $new_content = $content;  

  32.     }  

  33.     return $new_content;  

  34. }  

  35. //取得所有链接  

  36. function get_all_url($code){  

  37.     preg_match_all('/<a\s+href=["|\']?([^>"\' ]+)["|\']?\s*[^>]*>([^>]+)<\/a>/i',$code,$arr);  

  38.     return array('name'=>$arr[2],'url'=>$arr[1]);  

  39. }  

  40.   

  41. //获取指定标记中的内容  

  42. function get_tag_data($str, $start, $end){  

  43.     if ( $start == '' || $end == '' ){  

  44.         return;  

  45.     }  

  46.     $str = explode($start, $str);  

  47.     $str = explode($end, $str[1]);  

  48.     return $str[0];  

  49. }  

  50. //HTML表格的每行转为CSV格式数组  

  51. function get_tr_array($table) {  

  52.     $table = preg_replace("'<td[^>]*?>'si",'"',$table);  

  53.     $table = str_replace("</td>",'",',$table);  

  54.     $table = str_replace("</tr>","{tr}",$table);  

  55.     //去掉 HTML 标记  

  56.     $table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table);  

  57.     //去掉空白字符  

  58.     $table = preg_replace("'([\r\n])[\s]+'","",$table);  

  59.     $table = str_replace(" ","",$table);  

  60.     $table = str_replace(" ","",$table);  

  61.   

  62.     $table = explode(",{tr}",$table);  

  63.     array_pop($table);  

  64.     return $table;  

  65. }  

  66.   

  67. //将HTML表格的每行每列转为数组,采集表格数据  

  68. function get_td_array($table) {  

  69.     $table = preg_replace("'<table[^>]*?>'si","",$table);  

  70.     $table = preg_replace("'<tr[^>]*?>'si","",$table);  

  71.     $table = preg_replace("'<td[^>]*?>'si","",$table);  

  72.     $table = str_replace("</tr>","{tr}",$table);  

  73.     $table = str_replace("</td>","{td}",$table);  

  74.     //去掉 HTML 标记  

  75.     $table = preg_replace("'<[\/\!]*?[^<>]*?>'si","",$table);  

  76.     //去掉空白字符  

  77.     $table = preg_replace("'([\r\n])[\s]+'","",$table);  

  78.     $table = str_replace(" ","",$table);  

  79.     $table = str_replace(" ","",$table);  

  80.   

  81.     $table = explode('{tr}', $table);  

  82.     array_pop($table);  

  83.     foreach ($table as $key=>$tr) {  

  84.         $td = explode('{td}', $tr);  

  85.         array_pop($td);  

  86.         $td_array[] = $td;  

  87.     }  

  88.     return $td_array;  

  89. }  

  90.   

  91. //返回字符串中的所有单词 $distinct=true 去除重复  

  92. function split_en_str($str,$distinct=true) {  

  93.     preg_match_all('/([a-zA-Z]+)/',$str,$match);  

  94.     if ($distinct == true) {  

  95.         $match[1] = array_unique($match[1]);  

  96.     }  

  97.     sort($match[1]);  

  98.     return $match[1];  

  99. }  


你可能感兴趣的:(网站采集器介绍)