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通过COM使用ADODB的简单例子
Dec 31 PHP
php 获取客户端的真实ip
Nov 30 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
Aug 01 PHP
php读取mysql中文数据出现乱码的解决方法
Aug 16 PHP
PHP动态生成javascript文件的2个例子
Apr 11 PHP
ThinkPHP3.1新特性之G方法的使用
Jun 19 PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
php中ob_flush函数和flush函数用法分析
Mar 18 PHP
Yii2 GridView实现列表页直接修改数据的方法
May 16 PHP
PHP依赖注入原理与用法分析
Aug 21 PHP
PHP中PCRE正则解析代码详解
Apr 26 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将数据库导出成excel的方法
2010/05/07 PHP
PHP下利用shell后台运行PHP脚本,并获取该脚本的Process ID的代码
2011/09/19 PHP
深入Nginx + PHP 缓存详解
2013/07/11 PHP
PHP使用CURL实现多线程抓取网页
2015/04/30 PHP
thinkPHP3.1验证码的简单实现方法
2016/04/22 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
JavaScript和ActionScript的交互实现代码
2010/08/01 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
2012/03/01 Javascript
从js向Action传中文参数出现乱码问题的解决方法
2013/12/29 Javascript
Javascript获取当前日期的农历日期代码
2014/10/08 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
微信小程序开发教程-手势解锁实例
2017/01/06 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
纯js实现页面返回顶部的动画(超简单)
2017/08/10 Javascript
EasyUI框架 使用Ajax提交注册信息的实现代码
2017/09/27 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
微信小程序--获取用户地理位置名称(无须用户授权)的方法
2019/04/29 Javascript
Python基于twisted实现简单的web服务器
2014/09/29 Python
python+pyqt5实现KFC点餐收银系统
2019/01/24 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
Python如何设置指定窗口为前台活动窗口
2020/08/12 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
托管代码(Managed Code)和非托管代码(Unmanaged Code)有什么区别
2014/09/29 面试题
开放系统互连参考模型
2016/06/29 面试题
大学生实习自我鉴定
2013/12/11 职场文书
个人授权委托书
2014/04/03 职场文书
酒店管理毕业生自荐信
2014/05/25 职场文书
高中学校对照检查材料
2014/08/31 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
小学推普周活动总结
2015/05/07 职场文书