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源代码
Oct 09 PHP
聊天室php&amp;mysql(五)
Oct 09 PHP
五个PHP程序员工具
May 26 PHP
PHP clearstatcache()函数详解
Mar 02 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
Jul 23 PHP
php抽奖小程序的实现代码
Jun 18 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
php实现图片添加描边字和马赛克的方法
Dec 10 PHP
Twig模板引擎用法入门教程
Jan 20 PHP
PHP递归获取目录内所有文件的实现方法
Nov 01 PHP
PHP基于GD2函数库实现验证码功能示例
Jan 27 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
Oct 16 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获取数组中某元素的位置及array_keys函数应用
2013/01/29 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
PHP实现统计所有字符在字符串中出现次数的方法
2017/10/17 PHP
php基于环形链表解决约瑟夫环问题示例
2017/11/07 PHP
laravel获取不到session的三种解决办法【推荐】
2018/09/16 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
EasyUI 中 MenuButton 的使用方法
2012/07/14 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
JavaScript对象创建模式实例汇总
2016/10/03 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
Vue中使用sass实现换肤功能
2018/09/07 Javascript
跨域请求两种方法 jsonp和cors的实现
2018/11/11 Javascript
微信小程序进入广告实现代码实例
2019/09/19 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
js实现筛选功能
2020/11/24 Javascript
如何在Python中编写并发程序
2016/02/27 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
2019/06/27 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
python opencv实现简易画图板
2020/08/27 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
新郎婚宴答谢词
2014/01/19 职场文书
自荐信写法介绍
2014/01/25 职场文书
大型晚会策划方案
2014/02/06 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
爱国之歌(8首)
2019/09/29 职场文书
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server