首页
学习
活动
专区
圈层
工具
发布

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

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

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

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

代码语言:javascript
复制
use ProxyPool\core\ProxyPool;

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

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

代码如下:

代码语言:javascript
复制
<?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文件:

代码语言:javascript
复制
<?php
require_once __DIR__ . '/autoloader.php';

use ProxyPool\core\ProxyPool;

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

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

下一篇
举报
领券