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 相关文章推荐
服务器端解压缩zip的脚本
Dec 22 PHP
PHP 地址栏信息的获取代码
Jan 07 PHP
PHP目录函数实现创建、读取目录教程实例
Jan 13 PHP
PHP安全配置详细说明
Sep 26 PHP
php curl模拟post提交数据示例
Dec 31 PHP
php递归使用示例(php递归函数)
Feb 14 PHP
PHP中余数、取余的妙用
Jun 29 PHP
php结合curl实现多线程抓取
Jul 09 PHP
我整理的PHP 7.0主要新特性
Jan 07 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
PHP实现微信申请退款功能
Oct 01 PHP
php的lavarel框架中join和orWhere的用法
Dec 28 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
一个简单的PHP验证码实现代码
2014/05/10 PHP
php数组添加元素方法小结
2014/12/20 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
2017/11/25 PHP
javascript打开新窗口同时关闭旧窗口
2009/01/16 Javascript
ANGULARJS中使用JQUERY分页控件
2015/09/16 Javascript
三种Node.js写文件的方式
2016/03/08 Javascript
详解为Angular.js内置$http服务添加拦截器的方法
2016/12/20 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
简单实现jquery隔行变色
2017/11/09 jQuery
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
微信小程序实现身份证取景框拍摄
2020/09/09 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
Python脚本实现集群检测和管理功能
2015/03/06 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
Jupyter安装nbextensions,启动提示没有nbextensions库
2020/04/23 Python
Python读取系统文件夹内所有文件并统计数量的方法
2018/10/23 Python
Python中logging实例讲解
2019/01/17 Python
pycharm运行程序时看不到任何结果显示的解决
2020/02/21 Python
python实现FTP循环上传文件
2020/03/20 Python
用HTML5制作视频拼图的教程
2015/05/13 HTML / CSS
美国存储和组织商店:The Container Store
2017/08/16 全球购物
指针和引用有什么区别
2013/01/13 面试题
Java程序员综合测试题
2014/04/25 面试题
实习自我鉴定
2013/12/15 职场文书
秋季红领巾广播稿
2014/01/27 职场文书
学生打架检讨书
2014/02/14 职场文书
医院节能减排方案
2014/06/13 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
JS中如何优雅的使用async await详解
2021/10/05 Javascript
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫