php采集中国代理服务器网的方法 |
本文标签:php,采集 本文实例讲述了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程序设计有所帮助 。 |