本文实例讲述了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程序设计有所帮助。
本文地址:https://www.stayed.cn/item/10358
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我