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 相关文章推荐
C# Assembly类访问程序集信息
Jun 13 PHP
PHP和javascript常用正则表达式及用法实例
Jul 01 PHP
php异常处理方法实例汇总
Jun 24 PHP
Thinkphp+smarty+uploadify实现无刷新上传
Jul 30 PHP
php生成高清缩略图实例详解
Dec 07 PHP
PHP简单读取PDF页数的实现方法
Jul 21 PHP
php+jQuery+Ajax简单实现页面异步刷新
Aug 08 PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 PHP
Laravel框架生命周期与原理分析
Jun 12 PHP
Laravel框架搜索分页功能示例
Feb 01 PHP
laravel 操作数据库常用函数的返回值方法
Oct 11 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
了解咖啡雨林联盟认证 什么是雨林认证 雨林认证是什么意思
2021/03/05 新手入门
PHP 配置open_basedir 让各虚拟站点独立运行
2009/11/12 PHP
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
360通用php防护代码(使用操作详解)
2013/06/18 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
JS处理VBArray的函数使用说明
2008/05/11 Javascript
JavaScript 提升运行速度之循环篇 译文
2009/08/15 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
js判断图片加载完成后获取图片实际宽高的方法
2016/02/25 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
微信小程序静默登录的实现代码
2020/01/08 Javascript
JavaScript实现PC端横向轮播图
2020/02/07 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访 VP.no[o]ne心中最强SOLO是谁
2018/04/04 DOTA
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
python定时检测无响应进程并重启的实例代码
2019/04/22 Python
Python2 与Python3的版本区别实例分析
2020/03/30 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
Pycharm 如何一键加引号的方法步骤
2021/02/05 Python
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
微信营销策划方案
2014/02/24 职场文书
二年级学生评语大全
2014/04/23 职场文书
公司的力量观后感
2015/06/05 职场文书
昆虫记读书笔记
2015/06/26 职场文书
生产车间管理制度
2015/08/04 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS
深入理解pytorch库的dockerfile
2022/06/10 Python