當初小米樂園初搭建的時候發(fā)現(xiàn)SAE有提供計數(shù)器服務(wù),于是就搞一個放在主題文件的footer.php里,這樣每當footer被加載的時候就累計數(shù)+1。這一弄就發(fā)現(xiàn)了問題,因為小米樂園網(wǎng)站的訪問量很小,主要是自己在寫自己在看,但是呢發(fā)現(xiàn)計數(shù)器跑得飛快,一個晚上可以增加幾百個數(shù)。
而實際上用第三方網(wǎng)站統(tǒng)計,一天也就幾個IP,PV撐死也就幾十而已。這一年多以來,PV總數(shù)也只有一萬多,而計數(shù)器已經(jīng)跑到七萬多了。我知道這些都是搜索引擎爬蟲的功勞。但還是很好奇計數(shù)器每個數(shù)字后面的八卦料。于是自己動手,豐衣足食。在MySql里新建一個表“IPlog”來記錄IP,表有五個字段,`IP` , `Count` , `time` ,`HTTP_USER_AGENT`,`HTTP_REFERER`,`REQUEST_URI`,分別用來保存訪問者的IP,計數(shù)器的數(shù)字,訪問時間和訪問來路及訪問的頁面地址。然后在footer.php里計數(shù)器的地方把代碼放上去,這樣就可以記錄這些資料。
下面這段代碼是SAE專用,并且在SAE上有個計數(shù)器名稱為“Count_sum”,在正常的PHP服務(wù)器上要修改一下才能用。
<?php
function CountLog() //自定義函數(shù),用于記錄訪問者的IP到數(shù)據(jù)庫 by cailman 2012.11.13
{
$mysql = new SaeMysql();
$fwIP = strip_tags( $_SERVER['REMOTE_ADDR'] );
$c = new SaeCounter();
$c->incr('Count_sum');
$fws = $c->get('Count_sum');
$sql = "INSERT INTO `IPlog` ( `IP` , `Count` , `time` ,`HTTP_USER_AGENT`,`HTTP_REFERER`,`REQUEST_URI` ) VALUES ( '" . $mysql->escape( $fwIP ) . "' , '" . intval( $fws ) . "' , NOW(), '" . $mysql->escape( $_SERVER['HTTP_USER_AGENT'] ) . "', '" . $mysql->escape( $_SERVER['HTTP_REFERER'] ) . "', '" . $mysql->escape( $_SERVER['REQUEST_URI'] ) . "') ";
$mysql->runSql( $sql );
if( $mysql->errno() != 0 )
{
die( "Error:" . $mysql->errmsg() );
}
$mysql->closeDb();
}
CountLog();
?>
第二天看了一下數(shù)據(jù)庫,從前一天的18點到第二天的12點,18個小時,共有大概200條記錄。其中大部分是各類蛛蛛爬蟲bot。分布比較均勻,每個小時都是10~20次左右的記錄。
一般來說訪問者的USER_AGENT會留下自己的對應(yīng)信息,例如操作系統(tǒng),語言,瀏覽器版本等等。各種爬蟲一般都會主動留下正確的信息。于是發(fā)現(xiàn)這個字段的開頭幾乎全都是“Mozilla/4.0”或“Mozilla/5.0”,不管是爬蟲還是正常訪問者。上網(wǎng)搜了一下才發(fā)現(xiàn)這個原來是當年微軟IE和網(wǎng)景瀏覽器留下來的遺跡,后來的所有瀏覽器和爬蟲都神奇地采用這種USER_AGENT,題外話不說了。
粗例分析了一下,說說爬蟲的一些八卦吧。
這一晚捉到的爬蟲覆蓋了幾大有名的搜過引擎,其中最勤快的是google和soso。
Googlebot、Mediapartners-Google(這是專門用來爬有g(shù)oogle adsense頁面的)累計45次,Sosospider來了31次,還有一個好像是不良爬蟲的訪客,共訪問41次。這仨就點了共訪問數(shù)的六成了。
還有些比較有趣的東西,這些爬蟲一般都會表明身份,并留下網(wǎng)址,好讓你去了解它的規(guī)則。
下面是各個爬蟲留下的名片:
Sogou web spider http://www.sogou.com/docs/help/webmasters.htm#07
Googlebot http://www.google.com/bot.html
Baiduspider http://www.baidu.com/search/spider.html
Sosospider http://help.soso.com/webspider.htm
bingbot http://www.bing.com/bingbot.htm
YodaoBot http://www.yodao.com/help/webmaster/spider/
YRSpider http://www.yunrang.com/yrspider.html
YandexBot http://yandex.com/bots
還有些爬蟲只留下名字,沒留下地址的:
360Spider
Yahoo! Slurp China
還有些名字即是身份和地址的:
Xianguo.com 1 Subscribers
剛才說有個貌似不良爬蟲,它留下的USER_AGENT是“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; .NET CLR 2.0.50727)”,表明它是用NT5.1系統(tǒng)和IE6瀏覽器(這個狠)的主,其它的不大明白是什么,IP比較固定就2個:60.28.113.193、60.28.113.196,根據(jù)網(wǎng)上的說法,這貨老是抓Feed,而且德性很不好,看來后續(xù)可以把一些爬蟲拉黑節(jié)省點服務(wù)器資源。
總的來說,最勤快的是Google爬蟲,而且唯一有偽裝成手機瀏覽器爬網(wǎng)的也是google(因為不久前裝了個移動主題,手機訪問小米樂園的話,會啟動手機專用的移動主題,在記錄的時候我讓它有個特殊的標志,可以知道是從移動主題的footer.php記錄的),它的USER_AGENT是“Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)”說明它是一只化裝成IPhone的Google爬蟲,真是敬業(yè)啊。
這里面還有兩個搜索爬蟲比較小眾。
YRSpider http://www.yunrang.com/yrspider.html
這是國產(chǎn)的云壤公司的爬蟲,不知道它在收集些什么東西。
YandexBot http://yandex.com/bots
這個應(yīng)該外國的一個搜索引擎,打開看了一下,一個體驗不是很好的搜索引擎。
看來后續(xù)可以繼續(xù)觀察,把一些不良IP拉黑,這樣才環(huán)保一點,呵呵。
后來一時興起,搜了一下更改USER_AGENT,做為一個訪問者,你的瀏覽器的USER_AGENT是可以隨便自己定義的,例如我把瀏覽器的USER_AGENT改成"Mozilla/5.0 (www.miyue.me)",這樣訪問任何一個網(wǎng)站,都會在對方的日志里(如果有)留下我的網(wǎng)址,具體方法各個瀏覽不一樣,在網(wǎng)上可以直接搜到,就不轉(zhuǎn)了。這種除了調(diào)試外,基本上是屬于深夜拋媚眼的Geek玩法,哈哈。
而實際上用第三方網(wǎng)站統(tǒng)計,一天也就幾個IP,PV撐死也就幾十而已。這一年多以來,PV總數(shù)也只有一萬多,而計數(shù)器已經(jīng)跑到七萬多了。我知道這些都是搜索引擎爬蟲的功勞。但還是很好奇計數(shù)器每個數(shù)字后面的八卦料。于是自己動手,豐衣足食。在MySql里新建一個表“IPlog”來記錄IP,表有五個字段,`IP` , `Count` , `time` ,`HTTP_USER_AGENT`,`HTTP_REFERER`,`REQUEST_URI`,分別用來保存訪問者的IP,計數(shù)器的數(shù)字,訪問時間和訪問來路及訪問的頁面地址。然后在footer.php里計數(shù)器的地方把代碼放上去,這樣就可以記錄這些資料。
下面這段代碼是SAE專用,并且在SAE上有個計數(shù)器名稱為“Count_sum”,在正常的PHP服務(wù)器上要修改一下才能用。
<?php
function CountLog() //自定義函數(shù),用于記錄訪問者的IP到數(shù)據(jù)庫 by cailman 2012.11.13
{
$mysql = new SaeMysql();
$fwIP = strip_tags( $_SERVER['REMOTE_ADDR'] );
$c = new SaeCounter();
$c->incr('Count_sum');
$fws = $c->get('Count_sum');
$sql = "INSERT INTO `IPlog` ( `IP` , `Count` , `time` ,`HTTP_USER_AGENT`,`HTTP_REFERER`,`REQUEST_URI` ) VALUES ( '" . $mysql->escape( $fwIP ) . "' , '" . intval( $fws ) . "' , NOW(), '" . $mysql->escape( $_SERVER['HTTP_USER_AGENT'] ) . "', '" . $mysql->escape( $_SERVER['HTTP_REFERER'] ) . "', '" . $mysql->escape( $_SERVER['REQUEST_URI'] ) . "') ";
$mysql->runSql( $sql );
if( $mysql->errno() != 0 )
{
die( "Error:" . $mysql->errmsg() );
}
$mysql->closeDb();
}
CountLog();
?>
第二天看了一下數(shù)據(jù)庫,從前一天的18點到第二天的12點,18個小時,共有大概200條記錄。其中大部分是各類蛛蛛爬蟲bot。分布比較均勻,每個小時都是10~20次左右的記錄。
一般來說訪問者的USER_AGENT會留下自己的對應(yīng)信息,例如操作系統(tǒng),語言,瀏覽器版本等等。各種爬蟲一般都會主動留下正確的信息。于是發(fā)現(xiàn)這個字段的開頭幾乎全都是“Mozilla/4.0”或“Mozilla/5.0”,不管是爬蟲還是正常訪問者。上網(wǎng)搜了一下才發(fā)現(xiàn)這個原來是當年微軟IE和網(wǎng)景瀏覽器留下來的遺跡,后來的所有瀏覽器和爬蟲都神奇地采用這種USER_AGENT,題外話不說了。
粗例分析了一下,說說爬蟲的一些八卦吧。
這一晚捉到的爬蟲覆蓋了幾大有名的搜過引擎,其中最勤快的是google和soso。
Googlebot、Mediapartners-Google(這是專門用來爬有g(shù)oogle adsense頁面的)累計45次,Sosospider來了31次,還有一個好像是不良爬蟲的訪客,共訪問41次。這仨就點了共訪問數(shù)的六成了。
還有些比較有趣的東西,這些爬蟲一般都會表明身份,并留下網(wǎng)址,好讓你去了解它的規(guī)則。
下面是各個爬蟲留下的名片:
Sogou web spider http://www.sogou.com/docs/help/webmasters.htm#07
Googlebot http://www.google.com/bot.html
Baiduspider http://www.baidu.com/search/spider.html
Sosospider http://help.soso.com/webspider.htm
bingbot http://www.bing.com/bingbot.htm
YodaoBot http://www.yodao.com/help/webmaster/spider/
YRSpider http://www.yunrang.com/yrspider.html
YandexBot http://yandex.com/bots
還有些爬蟲只留下名字,沒留下地址的:
360Spider
Yahoo! Slurp China
還有些名字即是身份和地址的:
Xianguo.com 1 Subscribers
剛才說有個貌似不良爬蟲,它留下的USER_AGENT是“Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; InfoPath.2; .NET CLR 2.0.50727)”,表明它是用NT5.1系統(tǒng)和IE6瀏覽器(這個狠)的主,其它的不大明白是什么,IP比較固定就2個:60.28.113.193、60.28.113.196,根據(jù)網(wǎng)上的說法,這貨老是抓Feed,而且德性很不好,看來后續(xù)可以把一些爬蟲拉黑節(jié)省點服務(wù)器資源。
總的來說,最勤快的是Google爬蟲,而且唯一有偽裝成手機瀏覽器爬網(wǎng)的也是google(因為不久前裝了個移動主題,手機訪問小米樂園的話,會啟動手機專用的移動主題,在記錄的時候我讓它有個特殊的標志,可以知道是從移動主題的footer.php記錄的),它的USER_AGENT是“Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_1 like Mac OS X; en-us) AppleWebKit/532.9 (KHTML, like Gecko) Version/4.0.5 Mobile/8B117 Safari/6531.22.7 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html)”說明它是一只化裝成IPhone的Google爬蟲,真是敬業(yè)啊。
這里面還有兩個搜索爬蟲比較小眾。
YRSpider http://www.yunrang.com/yrspider.html
這是國產(chǎn)的云壤公司的爬蟲,不知道它在收集些什么東西。
YandexBot http://yandex.com/bots
這個應(yīng)該外國的一個搜索引擎,打開看了一下,一個體驗不是很好的搜索引擎。
看來后續(xù)可以繼續(xù)觀察,把一些不良IP拉黑,這樣才環(huán)保一點,呵呵。
后來一時興起,搜了一下更改USER_AGENT,做為一個訪問者,你的瀏覽器的USER_AGENT是可以隨便自己定義的,例如我把瀏覽器的USER_AGENT改成"Mozilla/5.0 (www.miyue.me)",這樣訪問任何一個網(wǎng)站,都會在對方的日志里(如果有)留下我的網(wǎng)址,具體方法各個瀏覽不一樣,在網(wǎng)上可以直接搜到,就不轉(zhuǎn)了。這種除了調(diào)試外,基本上是屬于深夜拋媚眼的Geek玩法,哈哈。