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和MySQL保存和输出图片
Oct 09 PHP
php下用GD生成生成缩略图的两个选择和区别
Apr 17 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
php修改NetBeans默认字体的大小
Jul 02 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
Mar 18 PHP
php中mkdir函数用法实例分析
Nov 15 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
实现WordPress主题侧边栏切换功能的PHP脚本详解
Dec 14 PHP
yii2.0实现验证用户名与邮箱功能
Dec 22 PHP
php函数传值的引用传递注意事项分析
Jun 25 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 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 cli换行示例
2014/04/22 PHP
php+js iframe实现上传头像界面无跳转
2014/04/29 PHP
PHP抽象类基本用法示例
2018/12/28 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
js动态加载以及确定加载完成的代码
2011/07/31 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
2012/03/01 Javascript
基于jquery实现后台左侧菜单点击上下滑动显示
2013/04/11 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
JavaScript实现cookie的写入、读取、删除功能
2015/11/05 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
React 父子组件通信的实现方法
2019/12/05 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
Vue 解决通过this.$refs来获取DOM或者组件报错问题
2020/07/28 Javascript
vue实现轮播图帧率播放
2021/01/26 Vue.js
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
Python实现简单的代理服务器
2015/07/25 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
浅谈python之新式类
2018/08/12 Python
Python语言快速上手学习方法
2018/12/14 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
python开发一款翻译工具
2020/10/10 Python
Python实现对word文档添加密码去除密码的示例代码
2020/12/29 Python
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
2014年上半年工作自我评价
2014/01/18 职场文书
幼儿园美术教学反思
2014/01/31 职场文书
前台文员职责范本
2014/03/07 职场文书
工业设计毕业生自荐信
2014/04/13 职场文书
推广活动策划方案
2014/08/23 职场文书
深入开展党的群众路线教育实践活动心得体会
2014/11/05 职场文书
稽核岗位职责范本
2015/04/13 职场文书
开除员工通知
2015/04/22 职场文书
2016年教师节贺卡寄语
2015/12/04 职场文书