php采集中国代理服务器网的方法
本文实例讲述了php采集中国代理服务器网的方法。分享给大家供大家参考。具体如下:
<?php /** *采集中国代理服务器网最新列表 */ classproxy { /*需采集列表*/ public$list; /*代理列表保存路径*/ public$save_path='proxy.txt'; /*获取采集列表*/ functionget_list($page) { $url='http://www.cnproxy.com/proxy(*).html'; //处理列表 $this->list=preg_replace('/\(\*\)/',$page,$url); return$this->list; } /*采集代理内容*/ functionget($page) { $this->get_list($page); $file=stripslashes(file_get_contents($this->list)); $zz='/<tr><td>([0-9\.]+)<SCRIPTtype=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); returntrue; } /*保存*/ functionsave($re) { returnfile_put_contents($this->save_path,$re,FILE_APPEND); } /*读取*/ functionread() { returnfile_get_contents($this->save_path); } } //初始化采集类 $p=newproxy; $start=1; $end=10; //控制 if($_GET['a']=='start'){ echo'正在发送采集请求'; echo'<metahttp-equiv="Refresh"content="3;URL=?p=1">'; }elseif(isset($_GET['p'])){ $i=$_GET['p']++; if($i>=$end+1){ exit('<metahttp-equiv="Refresh"content="0;URL=?a=end">'); }else{ echo'正在请求列表'.$i.'>'.$end; if($p->get($i)){ echo'<metahttp-equiv="Refresh"content="3;URL=?p='.$_GET['p']++.'">'; } } }elseif($_GET['a']=='end'){ echo'采集完毕'; }else{ echo'<form> <inputtype="hidden"name="a"value="start"/> <inputtype="submit"value="开始采集"/> </form>'; } ?>
希望本文所述对大家的php程序设计有所帮助。