这篇文章主要介绍了php采集中国代理服务器网的方法,涉及php采集的相关使用技巧,需要的朋友可以参考下
本文实例讲述了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程序设计有所帮助。
新闻热点
疑难解答