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 24 PHP
php数字转汉字代码(算法)
Oct 08 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
php5.2以下版本无json_decode函数的解决方法
May 25 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
Jun 12 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
Jan 07 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
详细解读php的命名空间(一)
Feb 21 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
Apr 04 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 PHP
解决php写入数据库乱码的问题
Sep 17 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实现手机归属地查询API接口实现代码
2012/08/27 PHP
php魔术方法与魔术变量、内置方法与内置变量的深入分析
2013/06/03 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
php实现的漂亮分页方法
2014/04/17 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
JS实现打开本地文件或文件夹
2021/03/09 Javascript
鼠标移到图片上变大显示而不是放大镜效果
2014/06/15 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
VueJS如何引入css或者less文件的一些坑
2017/04/25 Javascript
Vue 中批量下载文件并打包的示例代码
2017/11/20 Javascript
nodejs爬虫初试superagent和cheerio
2018/03/05 NodeJs
详解小程序原生使用ES7 async/await语法
2018/08/06 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
详细介绍Python中的偏函数
2015/04/27 Python
Python书单 不将就
2017/07/11 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
基于TensorFlow中自定义梯度的2种方式
2020/02/04 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
2020/03/14 Python
django跳转页面传参的实现
2020/09/17 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
python跨文件使用全局变量的实现
2020/11/17 Python
某某同志考察材料
2014/05/28 职场文书
保密工作目标责任书
2014/07/28 职场文书
网吧七夕活动策划方案
2014/08/31 职场文书
小学教师岗位职责
2015/04/02 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
2021/06/11 Python
javascript函数式编程基础
2021/09/15 Javascript
JavaScript流程控制(分支)
2021/12/06 Javascript