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绝对路径与相对路径之间关系的的分析
Mar 03 PHP
php debug 安装技巧
Apr 30 PHP
如何使用php判断服务器是否是HTTPS连接
Jul 05 PHP
php如何解决无法上传大于8M的文件问题
Mar 10 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
Apr 23 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
php格式化时间戳显示友好的时间实现思路及代码
Oct 23 PHP
浅析php工厂模式
Nov 25 PHP
PHP判断上传文件类型的解决办法
Oct 20 PHP
Windows2003下php5.4安装配置教程(IIS)
Jun 30 PHP
php获取文件名称和扩展名的方法
Feb 07 PHP
PHP面向对象之里氏替换原则简单示例
Apr 08 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实现智能文件类型检测的实现代码
2011/08/02 PHP
php获取数组中重复数据的两种方法
2013/06/28 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
2016/01/12 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
JavaScript 组件之旅(二)编码实现和算法
2009/10/28 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
动态载入js提高网页打开速度的方法
2014/07/04 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
微信公众号开发 自定义菜单跳转页面并获取用户信息实例详解
2016/12/08 Javascript
详解Vue-cli 创建的项目如何跨域请求
2017/05/18 Javascript
JavaScript切换搜索引擎的导航网页搜索框实例代码
2017/06/11 Javascript
高性能的javascript之加载顺序与执行原理篇
2018/01/14 Javascript
angularJS开发注意事项
2018/05/26 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
Node.js Buffer模块功能及常用方法实例分析
2019/01/05 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
Python3基础之基本运算符概述
2014/08/13 Python
Windows下实现Python2和Python3两个版共存的方法
2015/06/12 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python 3.6.4 安装配置方法图文教程
2018/09/18 Python
python3利用Socket实现通信的方法示例
2019/05/06 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
Jar包的作用是什么
2014/03/30 面试题
高中生操行评语大全
2014/04/25 职场文书
2014红色之旅心得体会
2014/10/07 职场文书
公司股份合作协议书
2014/12/07 职场文书
校本课程教学计划
2015/01/19 职场文书
邹越演讲观后感
2015/06/15 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书