thinkphp6記錄百度蜘蛛日志。在控制器的父類如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記錄百度蜘蛛爬行日志的方法,
get_real_ip()
是獲取客戶真實IP的自定義函數,可以在本站搜索找到。

