网站日志里面出现 MJ12bot这个蜘蛛,要屏蔽吗

网站日志里面出现 MJ12bot这个蜘蛛,要屏蔽吗,第1张

看抓取次数是否很多,如果抓取次数很多,而且网站访问速度有所降低的话,就屏蔽掉,另外这种还有可能是其他采集软件伪装的搜索引擎制作,通过nslookup反查一下IP地址,如果是采集软件伪装的蜘蛛,立马封掉。

您好,

User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符,意思是针对所有搜索引擎都生效

比如这个

User-agent: Baiduspider

这个表示User-agent: Baiduspide这句以下的规则只针对百度蜘蛛,对其他搜索引擎无效

Disallow: /search.html表示禁止收录/search.html这个页面

一般情况下,搜索页面都没必要让蜘蛛收录的,出于对搜索引擎的友好,一般会禁止搜索引擎抓取

比如我博客的robots是这样的

User-agent: *

sitemap: http://www.itbyc.com/sitemap.xml

sitemap: http://www.itbyc.com/sitemap.txt

Disallow: /plus/

Disallow: /t

User-agent: Baiduspider

Disallow: /ap

User-agent: MJ12bot

Disallow: /

User-agent: Googlebot

Disallow: /-*/

此外

Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录

Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录

Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录

Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。

Disallow: /*?* 禁止访问网站中所有包含问号 (?) 的网址

Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片

Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。

Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录

Allow: /tmp 这里定义是允许爬寻tmp的整个目录

Allow: .htm$ 仅允许访问以".htm"为后缀的URL。

Allow: .gif$ 允许抓取网页和gif格式图片

Sitemap: 网站地图 告诉爬虫这个页面是网站地图

参考资料:

百度百科:robots.txt    词条

http://baike.baidu.com/view/9274458.htm?fromtitle=robots.txt

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,'baiduspider') !== false){$bot = 'Baidu'}

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,'yodaoBot') !== false){$bot = 'Yodao'}

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 爬虫

'Baiduspider', // 百度爬虫

'Yahoo! Slurp', // 雅虎爬虫

'YodaoBot', // 有道爬虫

'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",

"Baiduspider+",

"BaiduGame",

"Googlebot",

"msnbot",

"Sosospider+",

"Sogou web spider",

"ia_archiver",

"Yahoo! Slurp",

"YoudaoBot",

"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/YodaoBot",

"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 "你不是蜘蛛精啊!"


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/24261.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-02-16
下一篇2023-02-16

发表评论

登录后才能评论

评论列表(0条)

    保存