當前位置:首頁 » 編程語言 » 搜索引擎判斷php

搜索引擎判斷php

發布時間: 2022-05-15 02:45:54

php判斷來訪是搜索引擎蜘蛛還是普通用戶的代碼小結

1、推薦的一種方法:php判斷搜索引擎蜘蛛爬蟲還是人為訪問代碼,摘自Discuz x3.2
<?php
function checkrobot($useragent=''){
static $kw_spiders = array('bot', 'crawl', 'spider' ,'slurp', 'sohu-search', 'lycos', 'robozilla');
static $kw_browsers = array('msie', 'netscape', 'opera', 'konqueror', 'mozilla');

$useragent = strtolower(empty($useragent) ? $_SERVER['HTTP_USER_AGENT'] : $useragent);
if(strpos($useragent, 'http://') === false && dstrpos($useragent, $kw_browsers)) return false;
if(dstrpos($useragent, $kw_spiders)) return true;
return false;
}
function dstrpos($string, $arr, $returnvalue = false) {
if(empty($string)) return false;
foreach((array)$arr as $v) {
if(strpos($string, $v) !== false) {
$return = $returnvalue ? $v : true;
return $return;
}
}
return false;
}
if(checkrobot()){
echo '機器人爬蟲';
}else{
echo '人';
}
?>

實際應用中可以這樣判斷,直接不是搜索引擎才執行操作
<?php
if(!checkrobot()){
//do something
}
?>

2、第二種方法:
使用PHP實現蜘蛛訪問日誌統計
$useragent = addslashes(strtolower($_SERVER['HTTP_USER_AGENT']));

if (strpos($useragent, 'googlebot')!== false){$bot = 'Google';}
elseif (strpos($useragent,'mediapartners-google') !== false){$bot = 'Google Adsense';}
elseif (strpos($useragent,'spider') !== false){$bot = 'Bai';}
elseif (strpos($useragent,'sogou spider') !== false){$bot = 'Sogou';}
elseif (strpos($useragent,'sogou web') !== false){$bot = 'Sogou web';}
elseif (strpos($useragent,'sosospider') !== false){$bot = 'SOSO';}
elseif (strpos($useragent,'360spider') !== false){$bot = '360Spider';}
elseif (strpos($useragent,'yahoo') !== false){$bot = 'Yahoo';}
elseif (strpos($useragent,'msn') !== false){$bot = 'MSN';}
elseif (strpos($useragent,'msnbot') !== false){$bot = 'msnbot';}
elseif (strpos($useragent,'sohu') !== false){$bot = 'Sohu';}
elseif (strpos($useragent,'yoBot') !== false){$bot = 'Yo';}
elseif (strpos($useragent,'twiceler') !== false){$bot = 'Twiceler';}
elseif (strpos($useragent,'ia_archiver') !== false){$bot = 'Alexa_';}
elseif (strpos($useragent,'iaarchiver') !== false){$bot = 'Alexa';}
elseif (strpos($useragent,'slurp') !== false){$bot = '雅虎';}
elseif (strpos($useragent,'bot') !== false){$bot = '其它蜘蛛';}
if(isset($bot)){
$fp = @fopen('bot.txt','a');
fwrite($fp,date('Y-m-d H:i:s')."\t".$_SERVER["REMOTE_ADDR"]."\t".$bot."\t".'http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]."\r\n");
fclose($fp);
}

第三種方法:
我們可以通過HTTP_USER_AGENT來判斷是否是蜘蛛,搜索引擎的蜘蛛都有自己的獨特標志,下面列取了一部分。
function is_crawler() {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
$spiders = array(
'Googlebot', // Google 爬蟲
'Baispider', // 網路爬蟲
'Yahoo! Slurp', // 雅虎爬蟲
'YoBot', // 有道爬蟲
'msnbot' // Bing爬蟲
// 更多爬蟲關鍵字
);
foreach ($spiders as $spider) {
$spider = strtolower($spider);
if (strpos($userAgent, $spider) !== false) {
return true;
}
}
return false;
}

下面的php代碼附帶了更多的蜘蛛標識
function isCrawler() {
echo $agent= strtolower($_SERVER['HTTP_USER_AGENT']);
if (!empty($agent)) {
$spiderSite= array(
"TencentTraveler",
"Baispider+",
"BaiGame",
"Googlebot",
"msnbot",
"Sosospider+",
"Sogou web spider",
"ia_archiver",
"Yahoo! Slurp",
"YouBot",
"Yahoo Slurp",
"MSNBot",
"Java (Often spam bot)",
"BaiDuSpider",
"Voila",
"Yandex bot",
"BSpider",
"twiceler",
"Sogou Spider",
"Speedy Spider",
"Google AdSense",
"Heritrix",
"Python-urllib",
"Alexa (IA Archiver)",
"Ask",
"Exabot",
"Custo",
"OutfoxBot/YoBot",
"yacy",
"SurveyBot",
"legs",
"lwp-trivial",
"Nutch",
"StackRambler",
"The web archive (IA Archiver)",
"Perl tool",
"MJ12bot",
"Netcraft",
"MSIECrawler",
"WGet tools",
"larbin",
"Fish search",
);
foreach($spiderSite as $val) {
$str = strtolower($val);
if (strpos($agent, $str) !== false) {
return true;
}
}
} else {
return false;
}
}
if (isCrawler()){
echo "你好蜘蛛精!";
}
else{
echo "你不是蜘蛛精啊!";

⑵ 求:php判斷普通訪客於搜索引擎蜘蛛代碼,並根據來訪用戶給出不同代碼

<?php
// 下面是一些常見的蜘蛛名
$flag = false;
$tmp = $_SERVER['HTTP_USER_AGENT'];
if(strpos($tmp, 'Googlebot') !== false){
$flag = true;
} else if(strpos($tmp, 'Baispider') >0){
$flag = true;
} else if(strpos($tmp, 'Yahoo! Slurp') !== false){
$flag = true;
} else if(strpos($tmp, 'msnbot') !== false){
$flag = true;
} else if(strpos($tmp, 'Sosospider') !== false){
$flag = true;
} else if(strpos($tmp, 'YoBot') !== false || strpos($tmp, 'OutfoxBot') !== false){
$flag = true;
} else if(strpos($tmp, 'Sogou web spider') !== false || strpos($tmp, 'Sogou Orion spider') !== false){
$flag = true;
} else if(strpos($tmp, 'fast-webcrawler') !== false){
$flag = true;
} else if(strpos($tmp, 'Gaisbot') !== false){
$flag = true;
} else if(strpos($tmp, 'ia_archiver') !== false){
$flag = true;
} else if(strpos($tmp, 'altavista') !== false){
$flag = true;
} else if(strpos($tmp, 'lycos_spider') !== false){
$flag = true;
} else if(strpos($tmp, 'Inktomi slurp') !== false){
$flag = true;
}
if($flag == false){
//正常用戶代碼
} else {
//蜘蛛處理代碼
}
?>
可以放在網頁程序的開頭

⑶ PHP如何判斷網頁是否有搜索引擎機器人在訪問瀏覽

使用PHP技術搭建,因此我們用php去判斷是否是搜索引擎,PHP有個很簡單的方式去實現,通過_SERVER這個預定義變數中的_SERVER['HTTP_USER_AGENT']可以取得訪問者的屬性,具體可以看下Diiscuz!是如何判斷搜索引擎的,函數代碼如下:
function getrobot() {
if(!defined('IS_ROBOT')) {
kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
if(preg_match("/(kw_browsers)/", $_SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', FALSE);
} elseif(preg_match("/(kw_spiders)/", $_SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', TRUE);
} else {
define('IS_ROBOT', FALSE);
}
}
return IS_ROBOT;
}
根據上面還可以精簡如下(最終我們採用了這個方案):
if(preg_match("/(Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)/i", $_SERVER['HTTP_USER_AGENT'])) {
echo 'robot';
}
如果你需要返回詳細的搜索引擎名稱,而不是是否是搜索引擎機器人的話,請看下面的代碼:
function get_naps_bot() {
useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
if (strpos(useragent, 'googlebot') !== false){
return 'Googlebot';
}
if (strpos(useragent, 'msnbot') !== false){
return 'MSNbot';
}
if (strpos(useragent, 'slurp') !== false){
return 'Yahoobot';
}
if (strpos(useragent, 'spider') !== false){
return 'Baispider';
}
if (strpos(useragent, 'sohu-search') !== false){
return 'Sohubot';
}
if (strpos(useragent, 'lycos') !== false){
return 'Lycos';
}
if (strpos(useragent, 'robozilla') !== false){
return 'Robozilla';
}
return false;
}

⑷ php判斷網站是否來自搜索引擎

可以吧,在php有個超級變數就是$_SERVER['HTTP_REFERER']這個是前一頁的URL地址,然後在你的主頁中判斷來源就行。

⑸ PHP如何判斷是否為搜索引擎是,正常瀏覽該頁面;不是,返回404。

將 123.125.68.*這個蜘蛛經常來,別的來的少,表示網站可能要進入沙盒了,或被者降權。
220.181.68.*每天這個IP 段只增不減很有可能進沙盒或K站。
220.181.7.*、123.125.66.* 代表網路蜘蛛IP造訪,准備抓取你東西。
121.14.89.*這個ip段作為度過新站考察期。

將這幾個重要蜘蛛的IP段 設置為可訪問 其他IP 拒絕訪問即可`(注意是IP段 不是單個IP) 網站每天來的基本都是這幾個段的IP 其他IP段的是網路圖片 競價 以及 降權蜘蛛 那些不用管它們

⑹ PHP判斷來訪ip是搜索引擎蜘蛛還是普通用戶

IP 不能保證不變,但是可以通過 useragent 來判斷,useragent改變的可能性和頻率就要低很多。這篇文章列出了各類搜索引擎的 ua,沒驗證是否准確,你可以瞭解一下http://www.oicqzone.com/pc/2015090122339.html。

⑺ 如何用PHP代碼來判斷搜索引擎蜘蛛來路

根據$_SERVER['HTTP_REFERER']判斷來路

根據$_SERVER['HTTP_USER_AGENT']來識別訪問者身份

比如
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322, Bai-Transcoder/1.0.6.0, gate..com)

msnbot/1.1 (+http://search.msn.com/msnbot.htm)

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
……

你是不是想以這種方式,加入無關關鍵詞,搜索作弊?可能會被懲罰的,慎用

⑻ 超簡單php判斷是否為搜索引擎蜘蛛

得到訪問ip,然後和你的收集的蜘蛛 ip 數組比對,是就 echo true,不是 echo false,夠簡單的吧

⑼ php搜索引擎問題

總感覺你這個sql
$sql="select * from `$table` where `$condition` like '%$_POST[key]%'";
有問題 正確的應該寫成
$sql="select * from `".$table."` where `".$condition."` like '%".$_POST[key]."%'";

如果按照你原來的SQL 列印出了結果但是沒有加粗 你可以嘗試替換成其他字元
用以判斷是否執行了
$arr['username']=ereg_replace("/($_POST[key])/i","<b>\\1</b>",$arr['username']);

⑽ 如何用PHP判斷搜索引擎蜘蛛來路急!

一下是DZ代碼中的實現細節,你可以參考一下: 其實PHP有個很簡單的方式去實現,通過_SERVER這個預定義變數中的_SERVER['HTTP_USER_AGENT']可以取得訪問者的屬性,具體可以看下Diiscuz!是如何判斷搜索引擎的,函數代碼如下:
function getrobot() {
if(!defined('IS_ROBOT')) {
kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
if(preg_match("/(kw_browsers)/", _SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', FALSE);
} elseif(preg_match("/(kw_spiders)/", _SERVER['HTTP_USER_AGENT'])) {
define('IS_ROBOT', TRUE);
} else {
define('IS_ROBOT', FALSE);
}
}
return IS_ROBOT;
}

根據上面還可以精簡如下:
if(preg_match("/(Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla)/i", _SERVER['HTTP_USER_AGENT'])) {
echo 'robot';
}

如果你需要返回詳細的搜索引擎名稱,而不是是否是搜索引擎機器人的話,請看下面的代碼:
function get_naps_bot() {
useragent = strtolower(_SERVER['HTTP_USER_AGENT']);

if (strpos(useragent, 'googlebot') !== false){
return 'Googlebot';
}

if (strpos(useragent, 'msnbot') !== false){
return 'MSNbot';
}

if (strpos(useragent, 'slurp') !== false){
return 'Yahoobot';
}

if (strpos(useragent, 'spider') !== false){
return 'Baispider';
}

if (strpos(useragent, 'sohu-search') !== false){
return 'Sohubot';
}

if (strpos(useragent, 'lycos') !== false){
return 'Lycos';
}

if (strpos(useragent, 'robozilla') !== false){
return 'Robozilla';
}
return false;
}

熱點內容
我的世界正版好玩的pvp伺服器 發布:2024-04-19 16:28:38 瀏覽:17
光遇安卓渠道服怎麼更換實名認證 發布:2024-04-19 16:18:08 瀏覽:263
關閉ip訪問 發布:2024-04-19 15:59:18 瀏覽:730
大屏安卓系統哪個好 發布:2024-04-19 15:49:10 瀏覽:792
解壓瀏覽器 發布:2024-04-19 15:39:22 瀏覽:575
pythonutfgbk 發布:2024-04-19 15:32:20 瀏覽:221
騰訊雲伺服器搭建網站打不開 發布:2024-04-19 15:32:15 瀏覽:967
光遇腳本輔助下載免費ios 發布:2024-04-19 15:22:11 瀏覽:243
表格VB腳本 發布:2024-04-19 15:13:07 瀏覽:780
python生成器表達式 發布:2024-04-19 15:12:10 瀏覽:747