一步步編寫本身的PHP爬取代理IP項目(二)

這一章節咱們正式開展咱們的爬蟲項目,首先咱們先要知道哪一個網站能獲取到免費代理IP,目前比較火的有西刺代理,快代理等,這裏咱們拿西刺代理做爲例子。php

這裏就是一個個免費的IP地址以及各自的端口號,咱們的任務就是要把這些IP和端口號爬取下來,檢測其可用性而且存儲起來。linux

首先咱們須要編寫一個入口文件,咱們命名爲run.php,其內容大概是這樣:windows

use ProxyPool\core\ProxyPool;

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

實例化ProxyPool而且調用裏面的run方法,而咱們要用到命名空間而且use它,天然就避免不了一個autoloader(根據命名自動加載對應的文件)。網站

代碼以下:ui

<?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文件:spa

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

use ProxyPool\core\ProxyPool;

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

這樣咱們就能夠經過命名空間直接use咱們本身寫好的各個類文件啦。代理

相關文章
相關標籤/搜索