首页 > 编程 > PHP > 正文

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

2019-11-21 22:58:21
字体:
来源:转载
供稿:网友

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

<?php/** * 采集中国代理服务器网 最新列表 */class proxy{  /* 需采集列表  */  public $list;  /* 代理列表 保存路径 */  public $save_path = 'proxy.txt';  /* 获取采集列表 */  function get_list($page)  {    $url = 'http://www.cnproxy.com/proxy(*).html';    // 处理列表    $this->list = preg_replace('//(/*/)/', $page, $url);    return $this->list;  }  /* 采集代理内容 */  function get($page)  {    $this->get_list($page);    $file = stripslashes(file_get_contents($this->list));    $zz = '/<tr><td>([0-9/.]+)<SCRIPT type=text//javascript>document/.write/(":"([/+a-z]+)/)<//SCRIPT><//td><td>[/w]+<//td><td>[/w/,]+<//td>/is';    preg_match_all($zz, $file, $temp);    unset($temp[0]);    $th = array('z', 'm', 'k', 'l', 'd', 'x', 'i', 'w', 'q', 'b');    $th2 = array(3, 4, 2, 9, 0, 5, 7, 6, 8, 1);    foreach ($temp[2] as $k=>$v) {      $v = preg_replace("/[/+]+/", '', $v);      $s = str_replace($th, $th2, $v);      $re .= $temp[1][$k] . ':' . $s . "/r/n";    }    $this->save($re);    return true;  }  /* 保存 */  function save($re)  {    return file_put_contents($this->save_path, $re, FILE_APPEND);  }  /* 读取 */  function read()  {    return file_get_contents($this->save_path);  }}// 初始化采集类$p = new proxy;$start = 1;$end = 10;// 控制if($_GET['a'] == 'start') {  echo '正在发送采集请求';  echo '<meta http-equiv="Refresh" content="3;URL=?p=1">';} elseif(isset($_GET['p'])) {  $i = $_GET['p']++;  if($i >= $end+1) {    exit('<meta http-equiv="Refresh" content="0;URL=?a=end">');  } else {    echo '正在请求列表 '. $i .' > '. $end;    if($p->get($i)) {      echo '<meta http-equiv="Refresh" content="3;URL=?p='.$_GET['p']++.'">';    }  }} elseif($_GET['a'] == 'end') {  echo '采集完毕';} else {  echo '<form>      <input type="hidden" name="a" value="start" />      <input type="submit" value="开始采集" />     </form>';}?>

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表