ホームページ >バックエンド開発 >PHPチュートリアル >PHPは中国のプロキシサーバーネットワークの収集を実装します

PHPは中国のプロキシサーバーネットワークの収集を実装します

墨辰丷
墨辰丷オリジナル
2018-06-09 17:01:441861ブラウズ

この記事では主に中国のプロキシ サーバー ネットワークのコレクションを実装するための PHP を紹介します。興味のある方はぜひ参考にしてください。

この記事の例では、PHP で中国のプロキシ サーバー ネットワークを収集する方法を説明します。詳細は次のとおりです。

<?php
/**
 * 采集中国代理服务器网 最新列表
 */
class proxy
{
  /* 需采集列表  */
  public $list;
  /* 代理列表 保存路径 */
  public $save_path = &#39;proxy.txt&#39;;
  /* 获取采集列表 */
  function get_list($page)
  {
    $url = &#39;http://www.cnproxy.com/proxy(*).html&#39;;
    // 处理列表
    $this->list = preg_replace(&#39;/\(\*\)/&#39;, $page, $url);
    return $this->list;
  }
  /* 采集代理内容 */
  function get($page)
  {
    $this->get_list($page);
    $file = stripslashes(file_get_contents($this->list));
    $zz = &#39;/<tr><td>([0-9\.]+)<SCRIPT type=text\/javascript>document\.write\(":"([\+a-z]+)\)<\/SCRIPT><\/td><td>[\w]+<\/td><td>[\w\,]+<\/td>/is&#39;;
    preg_match_all($zz, $file, $temp);
    unset($temp[0]);
    $th = array(&#39;z&#39;, &#39;m&#39;, &#39;k&#39;, &#39;l&#39;, &#39;d&#39;, &#39;x&#39;, &#39;i&#39;, &#39;w&#39;, &#39;q&#39;, &#39;b&#39;);
    $th2 = array(3, 4, 2, 9, 0, 5, 7, 6, 8, 1);
    foreach ($temp[2] as $k=>$v) {
      $v = preg_replace("/[\+]+/", &#39;&#39;, $v);
      $s = str_replace($th, $th2, $v);
      $re .= $temp[1][$k] . &#39;:&#39; . $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[&#39;a&#39;] == &#39;start&#39;) {
  echo &#39;正在发送采集请求&#39;;
  echo &#39;<meta http-equiv="Refresh" content="3;URL=?p=1">&#39;;
} elseif(isset($_GET[&#39;p&#39;])) {
  $i = $_GET[&#39;p&#39;]++;
  if($i >= $end+1) {
    exit(&#39;<meta http-equiv="Refresh" content="0;URL=?a=end">&#39;);
  } else {
    echo &#39;正在请求列表 &#39;. $i .&#39; > &#39;. $end;
    if($p->get($i)) {
      echo &#39;<meta http-equiv="Refresh" content="3;URL=?p=&#39;.$_GET[&#39;p&#39;]++.&#39;">&#39;;
    }
  }
} elseif($_GET[&#39;a&#39;] == &#39;end&#39;) {
  echo &#39;采集完毕&#39;;
} else {
  echo &#39;<form>
      <input type="hidden" name="a" value="start" />
      <input type="submit" value="开始采集" />
     </form>&#39;;
}
?>

概要: 以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。

関連する推奨事項:

PHP ガベージ コレクション メカニズムに関する関連問題

文字列トラバーサル用の phpおよび傍受運用スキル

PHPに基づいて特定月の週情報を取得

以上がPHPは中国のプロキシサーバーネットワークの収集を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。