文档章节

一步步编写自己的PHP爬取代理IP项目(二)

NateHuang
 NateHuang
发布于 09/23 11:44
字数 490
阅读 56
收藏 8

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的有西刺代理,快代理等,这里我们拿西刺代理作为例子。

这里就是一个个免费的IP地址以及各自的端口号,我们的任务就是要把这些IP和端口号爬取下来,检测其可用性并且存储起来。

首先我们需要编写一个入口文件,我们命名为run.php,其内容大概是这样:

use ProxyPool\core\ProxyPool;

$proxy = new ProxyPool();
$proxy->run();

实例化ProxyPool并且调用里面的run方法,而我们要用到命名空间并且use它,自然就避免不了一个autoloader(根据命名自动加载对应的文件)。

代码如下:

<?php
namespace AutoLoad;

class autoloader
{
    /**     
    * 根据命名自动加载     
    *     
    * @param string $name  use的路径,例如我们这里就是ProxyPool\core\ProxyPool  
    * @return boolean     
    */
    public static function load_namespace($name)
    {
        //兼容windows和linux的目录分隔符
        $class_path = str_replace('\\', DIRECTORY_SEPARATOR, $name);
        
        //获取文件路径        
        $class_file = __DIR__ . substr($class_path, strlen('ProxyPool')) . '.php';
        
         //如果不存在,去上一层目录寻找     
        if (empty($class_file) || !is_file($class_file))             
        {                
           $class_file = __DIR__ . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . "$class_path.php";            
        }
        
        if (is_file($class_file))         
        {            
            require_once($class_file);            
            if (class_exists($name, false))             
            {                
                return true;            
            }        
        }        
        return false;
    }
}
//spl注册自动加载
spl_autoload_register('\AutoLoad\autoloader::load_namespace');

然后我们再回来修改我们的run.php文件:

<?php
require_once __DIR__ . '/autoloader.php';

use ProxyPool\core\ProxyPool;

$proxy = new ProxyPool();
$proxy->run();

这样我们就可以通过命名空间直接use我们自己写好的各个类文件啦。

© 著作权归作者所有

共有 人打赏支持
NateHuang
粉丝 18
博文 61
码字总数 29051
作品 0
深圳
后端工程师
私信 提问
一步步编写自己的PHP爬取代理IP项目(二)

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理IP,目前比较火的网站有西刺代理,快代理等,这里我们拿西刺代理作为例子。 西刺代理官网: http://www.xic...

NateHuang
09/18
0
0
一步步编写自己的PHP爬取代理IP项目(一)

第一章节主要给大家普及一下爬虫的概念以及相关的知识,让大家对后面的学习打下扎实的基础。如果你是有经验的开发者,完全可以跳过第一章进入第二章的学习了。 这个项目主要围绕两大核心点展...

NateHuang
09/14
0
0
代理IP爬取,计算,发放自动化系统

这学期有一门课叫《物联网与云计算》,于是我就做了一个大作业,实现的是对代理IP的爬取,计算推荐,发放给用户等任务的的自动化系统。由于代码比较多,有兴趣的可以到博主的GitHub上下载。 ...

郭璞
2016/10/05
0
0
一步步编写自己的PHP爬取代理IP项目(三)

上一章节我们讲完了自动加载,现在我们正式进入爬虫核心代码的编写中,首先我们需要先看看整个目录 config.php 这个是我们的配置文件加载文件 ProxyPool.php 这个是爬虫的核心处理文件 Queu...

NateHuang
09/29
0
0
基于python的POI数据爬取、处理和使用(一)

对于刚入职的半年的“新人”,多听听领导的建议还是大有裨益的。我们主任就说,新人要首先熟悉一下单位的业务,以及单位有哪些数据。在工作中,我就尽可能的了解一下这些,直到,我发现了POI...

u010723516
2017/05/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

使用CURL检测Clinet侧发起的HTTP请求各阶段时间

第一、HTTP请求的过程介绍 一个HTTP请求,涉及多个阶段 1、DNS解析域名 2、请求从Clinet路由至Server,Clinet与Server建立TCP连接 3、如果使用了HTTPS,还涉及SSL连接的建立 4、server开始准...

李玉长
7分钟前
0
0
Flume+Kafka双剑合璧玩转大数据平台日志采集

概述 大数据平台每天会产生大量的日志,处理这些日志需要特定的日志系统。 一般而言,这些系统需要具有以下特征: 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦; 支持近实时的在线...

java菜分享
13分钟前
0
0
Jenkins 分布式-管理节点

什么是Jenkins的分布式构建: Jenkins的分布式构建,在Jenkins的配置中叫做节点;能够让同一套代码或项目在不同的环境分发 节点配置 系统设置 - 节点管理 - 新建节点...

以谁为师
20分钟前
0
0
图片无限轮播

<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, max......

shawnDream
22分钟前
1
0
js 在==时,则会有一些让人难以理解的陷阱

在==时,则会有一些让人难以理解的陷阱。 (function () { var undefined; undefined == null; // true 1 == true; //true 2 == true; // false 0 == false; // true 0 == ''; // true NaN ==......

之渊
25分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部