php教程

超轻量级php框架startmvc

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

更新时间:2020-03-04 22:11:21 作者:startmvc
本文实例讲述了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程序设计有所帮助。

php 采集