ホームページ  >  記事  >  PHPフレームワーク  >  ThinkPHP6 でスパイダーのクローリングログを記録する方法

ThinkPHP6 でスパイダーのクローリングログを記録する方法

藏色散人
藏色散人転載
2021-12-10 14:32:032413ブラウズ

次の thinkphp フレームワーク チュートリアル コラムでは、ThinkPHP 6 が Baidu などのスパイダー クローリング ログを記録する方法を紹介します。

thinkphp6 は Baidu スパイダー ログを記録します:

IndexBase などのコントローラーの親クラスに次のコードを記述します。すべてのフロントエンド コントローラーはこのコントローラーを継承します

  public function initialize()
    {
        parent::initialize(); // TODO: Change the autogenerated stub
        if ($this->Config['web_status'] == 0) {  // 判断是否关闭网站
            die('网站已经关闭');
        }
        $this->baiduLog();
    }
    protected function baiduLog()
    {
        $useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
        $url = $this->request->controller() . "/" . $this->request->action();
        $param = input("param.","","htmlspecialchars");
        $url = (string) url($url,$param);
        $ip = get_real_ip();
        $title = "";
        if (strpos($useragent, 'googlebot') !== false){
            $title =  'Google';
        } elseif (strpos($useragent, 'baiduspider') !== false){
            $title =  'Baidu';
        } elseif (strpos($useragent, 'msnbot') !== false){
            $title =  'Bing';
        } elseif (strpos($useragent, 'slurp') !== false){
            $title =  'Yahoo';
        } elseif (strpos($useragent, 'sosospider') !== false){
            $title =  'Soso';
        } elseif (strpos($useragent, 'sogou spider') !== false){
            $title =  'Sogou';
        } elseif (strpos($useragent, 'yodaobot') !== false){
            $title =  'Yodao';
        } elseif (strpos($useragent, 'googlebot') !== false){
            $title =  'Google';
        } elseif (strpos($useragent, 'baiduspider') !== false){
            $title =  'Baidu';
        } else {
//            $title = $useragent; // 不怕数据大的话可以取消注释,记录所有访问日志
        }
        if (!empty($title)) {
            BaiduLog::create(["title"=>$title,"href"=>$url,"ip"=>$ip]);
        }
    }

上記は、thinkphp6 が Baidu スパイダーのクローリング ログを記録する方法です。

get_real_ip()

は、顧客の実際の IP を取得するためのカスタム関数です。

推奨: 「最新の 10 件の thinkphp ビデオ チュートリアル

以上がThinkPHP6 でスパイダーのクローリングログを記録する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はphpfv.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。