记录搜索引擎的爬虫看一些八卦边角料

时间:2012年11月14日 18:37 星期三 栏目:杂文随笔 作者: 评论:0 点击: 1,606 次

当初小米乐园初搭建的时候发现SAE有提供计数器服务,于是就搞一个放在主题文件的footer.php里,这样每当footer被加载的时候就累计数+1。这一弄就发现了问题,因为小米乐园网站的访问量很小,主要是自己在写自己在看,但是呢发现计数器跑得飞快,一个晚上可以增加几百个数。

而实际上用第三方网站统计,一天也就几个IP,PV撑死也就几十而已。这一年多以来,PV总数也只有一万多,而计数器已经跑到七万多了。我知道这些都是搜索引擎爬虫的功劳。但还是很好奇计数器每个数字后面的八卦料。于是自己动手,丰衣足食。在MySql里新建一个表“IPlog”来记录IP,表有五个字段,`IP` , `Count` , `time` ,`HTTP_USER_AGENT`,`HTTP_REFERER`,`REQUEST_URI`,分别用来保存访问者的IP,计数器的数字,访问时间和访问来路及访问的页面地址。然后在footer.php里计数器的地方把代码放上去,这样就可以记录这些资料。
下面这段代码是SAE专用,并且在SAE上有个计数器名称为“Count_sum”,在正常的PHP服务器上要修改一下才能用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
function CountLog() //自定义函数,用于记录访问者的IP到数据库 by cailman 2012.11.13
{
 
$mysql = new SaeMysql();
$fwIP = strip_tags( $_SERVER['REMOTE_ADDR'] );
$c = new SaeCounter();
$c-&gt;incr('Count_sum');
$fws = $c-&gt;get('Count_sum');
$sql = "INSERT  INTO `IPlog` ( `IP` , `Count` , `time` ,`HTTP_USER_AGENT`,`HTTP_REFERER`,`REQUEST_URI` ) VALUES ( '"  . $mysql-&gt;escape( $fwIP ) . "' , '" . intval( $fws ) . "' , NOW(), '"  . $mysql-&gt;escape( $_SERVER['HTTP_USER_AGENT'] ) . "', '"  . $mysql-&gt;escape( $_SERVER['HTTP_REFERER'] ) . "', '"  . $mysql-&gt;escape( $_SERVER['REQUEST_URI'] ) . "') ";
 
$mysql-&gt;runSql( $sql );
if( $mysql-&gt;errno() != 0 )
{
die( "Error:" . $mysql-&gt;errmsg() );
}
$mysql-&gt;closeDb();
 
}
 
CountLog();
 
?>

 

 

第二天看了一下数据库,从前一天的18点到第二天的12点,18个小时,共有大概200条记录。其中大部分是各类蛛蛛爬虫bot。分布比较均匀,每个小时都是10~20次左右的记录。

一般来说访问者的USER_AGENT会留下自己的对应信息,例如操作系统,语言,浏览器版本等等。各种爬虫一般都会主动留下正确的信息。于是发现这个字段的开头几乎全都是“Mozilla/4.0”或“Mozilla/5.0”,不管是爬虫还是正常访问者。上网搜了一下才发现这个原来是当年微软IE和网景浏览器留下来的遗迹,后来的所有浏览器和爬虫都神奇地采用这种USER_AGENT,题外话不说了。

粗例分析了一下,说说爬虫的一些八卦吧。

这一晚捉到的爬虫覆盖了几大有名的搜过引擎,其中最勤快的是google和soso。
Googlebot、Mediapartners-Google(这是专门用来爬有google adsense页面的)累计45次,Sosospider来了31次,还有一个好像是不良爬虫的访客,共访问41次。这仨就点了共访问数的六成了。

还有些比较有趣的东西,这些爬虫一般都会表明身份,并留下网址,好让你去了解它的规则。
下面是各个爬虫留下的名片:

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系统和IE6浏览器(这个狠)的主,其它的不大明白是什么,IP比较固定就2个:60.28.113.193、60.28.113.196,根据网上的说法,这货老是抓Feed,而且德性很不好,看来后续可以把一些爬虫拉黑节省点服务器资源。

总的来说,最勤快的是Google爬虫,而且唯一有伪装成手机浏览器爬网的也是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爬虫,真是敬业啊。

这里面还有两个搜索爬虫比较小众。
YRSpider http://www.yunrang.com/yrspider.html
这是国产的云壤公司的爬虫,不知道它在收集些什么东西。

YandexBot http://yandex.com/bots
这个应该外国的一个搜索引擎,打开看了一下,一个体验不是很好的搜索引擎。

看来后续可以继续观察,把一些不良IP拉黑,这样才环保一点,呵呵。

后来一时兴起,搜了一下更改USER_AGENT,做为一个访问者,你的浏览器的USER_AGENT是可以随便自己定义的,例如我把浏览器的USER_AGENT改成"Mozilla/5.0 (www.miyue.me)",这样访问任何一个网站,都会在对方的日志里(如果有)留下我的网址,具体方法各个浏览不一样,在网上可以直接搜到,就不转了。这种除了调试外,基本上是属于深夜抛媚眼的Geek玩法,哈哈。

相关文章

记录搜索引擎的爬虫看一些八卦边角料:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!

Baidu提供的广告

最近访客

    最新评论