Maison > développement back-end > tutoriel php > PHP implémente la collecte du réseau de serveurs proxy chinois

PHP implémente la collecte du réseau de serveurs proxy chinois

墨辰丷
Libérer: 2023-03-31 12:02:01
original
1864 Les gens l'ont consulté

Cet article présente principalement la mise en œuvre de la collecte du réseau de serveurs proxy chinois en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

L'exemple de cet article décrit la méthode de collecte du réseau de serveurs proxy chinois en PHP. Les détails sont les suivants :

<?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;;
}
?>
Copier après la connexion

Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Problèmes liés au mécanisme de récupération de place PHP

php pour les chaînes Traversal et compétences en matière d'opération d'interception

Obtenir des informations hebdomadaires d'un certain mois basées sur PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal