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


Posted in PHP onJune 16, 2015

本文实例讲述了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 相关文章推荐
PHP form 表单传参明细研究
Jul 17 PHP
PHP 开源框架22个简单简介
Aug 24 PHP
Php获取金书网的书名的实现代码
Jun 11 PHP
PHP print类函数使用总结
Jun 25 PHP
apache+php完美解决301重定向的两种方法
Jun 08 PHP
解析php多线程下载远程多个文件
Jun 25 PHP
yii2.0之GridView自定义按钮和链接用法
Dec 15 PHP
提交表单后 PHP获取提交内容的实现方法
May 25 PHP
php封装的图片(缩略图)处理类完整实例
Oct 19 PHP
thinkPHP实现多字段模糊匹配查询的方法
Dec 01 PHP
php+ajax简单实现全选删除的方法
Dec 06 PHP
PHP实现将base64编码字符串转换成图片示例
Jun 22 PHP
分享php分页的功能模块
Jun 16 #PHP
PHP生成plist数据的方法
Jun 16 #PHP
php动态绑定变量的用法
Jun 16 #PHP
php实现在服务器端调整图片大小的方法
Jun 16 #PHP
PHP正则验证Email的方法
Jun 15 #PHP
PHP实现通过正则表达式替换回调的内容标签
Jun 15 #PHP
PHP检测用户语言的方法
Jun 15 #PHP
You might like
PHP面向对象分析设计的经验原则
2008/09/20 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
JavaScript 对象模型 执行模型
2010/10/15 Javascript
window.name代替cookie的实现代码
2010/11/28 Javascript
JS继承 笔记
2011/07/13 Javascript
javascript简易缓动插件(源码打包)
2012/02/16 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
JS实现兼容性好,带缓冲的动感网页右键菜单效果
2015/09/18 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
jQuery基于BootStrap样式实现无限极地区联动
2016/08/26 Javascript
D3.js封装文本实现自动换行和旋转平移等功能
2016/10/14 Javascript
javascript判断回文数详解及实现代码
2017/02/03 Javascript
jQuery中layer分页器的使用
2017/03/13 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
Vue实现点击时间获取时间段查询功能
2020/08/21 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
JavaScript定时器常见用法实例分析
2019/11/15 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
原生JavaScript实现轮播图
2021/01/10 Javascript
vue使用vue-quill-editor富文本编辑器且将图片上传到服务器的功能
2021/01/13 Vue.js
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python函数式编程指南(四):生成器详解
2015/06/24 Python
快速入门python学习笔记
2017/12/06 Python
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
Python中return self的用法详解
2018/07/27 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
对Python中一维向量和一维向量转置相乘的方法详解
2019/08/26 Python
Python加速程序运行的方法
2020/07/29 Python
css3实现背景模糊的三种方式(小结)
2020/05/15 HTML / CSS
消防安全汇报材料
2014/02/08 职场文书
部队党性分析材料
2014/02/16 职场文书
房屋买卖协议书
2014/04/10 职场文书
关于运动会的口号
2014/06/07 职场文书
好听的队名和口号
2014/06/09 职场文书
关于JavaScript轮播图的实现
2021/11/20 Javascript