当前位置:首页 > PHP教程 > php应用 > 列表

php采集中国代理服务器网的方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-28 11:51:01 浏览: 评论:0 

这篇文章主要介绍了php采集中国代理服务器网的方法,涉及php采集的相关使用技巧,需要的朋友可以参考下。

本文实例讲述了php采集中国代理服务器网的方法,分享给大家供大家参考,具体如下:

  1. <?php 
  2. /** 
  3.  * 采集中国代理服务器网 最新列表 
  4.  */ 
  5. class proxy 
  6.   /* 需采集列表  */ 
  7.   public $list
  8.   /* 代理列表 保存路径 */ 
  9.   public $save_path = 'proxy.txt'
  10.   /* 获取采集列表 */ 
  11.   function get_list($page
  12.   { 
  13.     $url = 'http://www.cnproxy.com/proxy(*).html'
  14.     // 处理列表 
  15.     $this->list = preg_replace('/\(\*\)/'$page$url); 
  16.     return $this->list; 
  17.   } 
  18.   /* 采集代理内容 */ 
  19.   function get($page
  20.   { 
  21.     $this->get_list($page); 
  22.     $file = stripslashes(file_get_contents($this->list)); 
  23.     $zz = '/<tr><td>([0-9\.]+)<SCRIPT type=text\/javascript>document\.write\(":"([\+a-z]+)\)<\/SCRIPT><\/td><td>[\w]+<\/td><td>[\w\,]+<\/td>/is'
  24.     preg_match_all($zz$file$temp); 
  25.     unset($temp[0]); 
  26.     $th = array('z''m''k''l''d''x''i''w''q''b'); 
  27.     $th2 = array(3, 4, 2, 9, 0, 5, 7, 6, 8, 1); 
  28.     foreach ($temp[2] as $k=>$v) { 
  29.       $v = preg_replace("/[\+]+/"''$v); 
  30.       $s = str_replace($th$th2$v); 
  31.       $re .= $temp[1][$k] . ':' . $s . "\r\n"
  32.     } 
  33.     $this->save($re); 
  34.     return true; 
  35.   } 
  36.   /* 保存 */ 
  37.   function save($re
  38.   { 
  39.     return file_put_contents($this->save_path, $re, FILE_APPEND); 
  40.   } 
  41.   /* 读取 */ 
  42.   function read() 
  43.   { 
  44.     return file_get_contents($this->save_path); 
  45.   } 
  46. // 初始化采集类 
  47. $p = new proxy; 
  48. $start = 1; 
  49. $end = 10; 
  50. // 控制 
  51. if($_GET['a'] == 'start') { 
  52.   echo '正在发送采集请求'
  53.   echo '<meta http-equiv="Refresh" content="3;URL=?p=1">'
  54. elseif(isset($_GET['p'])) { 
  55.   $i = $_GET['p']++; 
  56.   if($i >= $end+1) { 
  57.     exit('<meta http-equiv="Refresh" content="0;URL=?a=end">'); 
  58.   } else { 
  59.     echo '正在请求列表 '$i .' > '$end
  60.     if($p->get($i)) { 
  61.       echo '<meta http-equiv="Refresh" content="3;URL=?p='.$_GET['p']++.'">'
  62.     } 
  63.   } 
  64. elseif($_GET['a'] == 'end') { 
  65.   echo '采集完毕'
  66. else { 
  67.   echo '<form> 
  68.       <input type="hidden" name="a" value="start" /> 
  69.       <input type="submit" value="开始采集" /> 
  70.      </form>'; 
  71. ?>

Tags: php采集中国代理服务器

分享到: