透過分析 $_SERVER['HTTP_USER_AGENT'] 識別常見搜尋引擎爬蟲。
<?php
private function getRobot() {
if (empty($_SERVER['HTTP_USER_AGENT'])) return false;
$bots = [
'googlebot'=>'google', 'mediapartners-google'=>'google',
'baiduspider'=>'baidu', 'msnbot'=>'msn',
'yodaobot'=>'yodao', 'youdaobot'=>'yodao',
'yahoo! slurp'=>'yahoo', 'yahoo! slurp china'=>'yahoo',
'iaskspider'=>'iask', 'sogou web spider'=>'sogou',
'sogou push spider'=>'sogou', 'sosospider'=>'soso',
'spider'=>'other', 'crawler'=>'other'
];
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
foreach ($bots as $key=>$val) if (strpos($ua, $key)!==false) return $val;
return false;
}
public function isRobot() { return $this->getRobot() !== false; }
?>
應用場景:為蜘蛛輸出靜態頁、記錄抓取日誌、阻擋惡意爬蟲等。