ホームページ > 記事 > PHPフレームワーク > ThinkPHP6 でスパイダーのクローリングログを記録する方法
次の 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 を取得するためのカスタム関数です。
以上がThinkPHP6 でスパイダーのクローリングログを記録する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。