下面thinkphp框架教程欄目將給大家介紹thinkphp 6是怎么記錄百度等蜘蛛爬取日志,希望對需要的朋友有所幫助!
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]); ????????} ????}
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END