首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一步步编写自己的PHP爬取代理IP项目(二)

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

作者头像
NateHuang
发布2019-03-12 17:26:12
4870
发布2019-03-12 17:26:12
举报
文章被收录于专栏:开发经验记录开发经验记录

这一章节我们正式开展我们的爬虫项目,首先我们先要知道哪个网站能获取到免费代理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我们自己写好的各个类文件啦。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018/09/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档