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+xslt在windows平台上
Oct 09 PHP
mysql数据库差异比较的PHP代码
Feb 05 PHP
Smarty中的注释和截断功能介绍
Apr 09 PHP
Laravel 中获取上一篇和下一篇数据
Jul 27 PHP
php实现通过soap调用.Net的WebService asmx文件
Feb 27 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP实现生成数据字典功能示例
May 24 PHP
php精度计算的问题解析
Jun 21 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 PHP
PHP7.3.10编译安装教程
Oct 08 PHP
laravel请求参数校验方法
Oct 10 PHP
微信小程序和php的登录实现
Apr 01 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
Re:从零开始的异世界生活 第2季 开播啦
2020/07/24 日漫
当年上海收录机产品生产,进口和价格情况
2021/03/04 无线电
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
php自动加载方式集合
2016/04/04 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
php写app用的框架整理
2019/09/29 PHP
Gird事件机制初级读本
2007/03/10 Javascript
JavaScript 版本自动生成文章摘要
2008/07/23 Javascript
关于UTF-8的客户端用AJAX方式获取GB2312的服务器端乱码问题的解决办法
2010/11/30 Javascript
基于jquery插件制作左右按钮与标题文字图片切换效果
2013/11/07 Javascript
js数组常见操作及数组与字符串相互转化实例详解
2015/11/10 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
JS优化与惰性载入函数实例分析
2017/04/06 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
js评分组件使用详解
2017/06/06 Javascript
vue中多路由表头吸顶实现的几种布局方式
2019/04/12 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
2020/04/26 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
Python中如何获取类属性的列表
2016/12/26 Python
Python 专题一 函数的基础知识
2017/03/16 Python
使用python和Django完成博客数据库的迁移方法
2018/01/05 Python
浅析Python数据处理
2018/05/02 Python
Python实现基于PIL和tesseract的验证码识别功能示例
2018/07/11 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
24岁生日感言
2014/01/13 职场文书
1000字打架检讨书
2014/11/03 职场文书
企业年会祝酒词
2015/08/11 职场文书
2016年春季趣味运动会开幕词
2016/03/04 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android
Matplotlib绘制条形图的方法你知道吗
2022/03/21 Python