键词:spider | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
从该文对googlebot的分析看,googlebot似乎是想先对网站的结构和规模做出分析,然后再规划抓取行为,googlebot的行为确实很有意思。Yahoo的机器人似乎是以月为单位周期的更新,抓取新网页和索引,感觉是想以量取胜,并且对网页似乎没有进一步的分析。感觉MSNbot在整体上还略逊于另两个竞争对手。原文连接和简单译文如下。 原文 http://drunkmenworkhere.org/219 译文 Introduction 前一篇文章介绍了Binary Search Tree 2,一个关于搜索引擎行为的大规模实验,该实验使用了超过20亿张不同的网页。这个实验持续了一年,直到4月13日结束(2006年)。在这一年时间里,3个主要的搜索引擎从数十万不同的URL中请求访问了此二叉树中超过100万张页面。而drunkmenworkhere.org的主页也因为页面上的访问日志和垃圾评论从1.6KB增长到4MB。 本文将介绍此次实验的结果。 Setup 2,147,483,647张页面被标号并放置在二叉搜索树中。在这个树中,左子树中的所有节点的编号都小于根节点的编号,右子树中的所有节点的编号都大于根节点的编号,所以最左边的节点的编号为1,最右边的为2,147,483,647。 树的深度是从根节点到最远节点的层数。一颗深度为n的树,拥有2n+1 – 1个节点,用于实验的树有30层(231 = 2,147,483,648)。根节点的值为1073741824 (230)。 每一张页面都有三大主要的搜索引擎的访问监控记录,持续一年时间(between 2005-4-13 and 2006-4-13)。 To make the content of each page more interesting for the search engines, the value of each node is written out in American English (short scale) and each page request from a search bot is displayed in reversed chronological order. To enrich the zero-content even more, a comment box was added to each page (it was removed on 2006-4-13). These measures were improvements over the initial Binary Search Tree which uses inconvenient long URLs. 每一张页面中都有三棵树状图,每棵树可视化的表示一个搜索引擎对节点的抓取。图中每条线表示一个节点,线越长表示被抓取得越频繁。The tree images below are modified large versions of the original image, without the very long root node and with disconnected (wild) branches. Overall results 从开始到现在,Yahoo! Slurp一直是最活跃的机器人程序。在一年的时间里,它请求访问了超过100万页,并且抓取了超过10万不同的网页。尽管这是一个很大的数字,但是它仍旧只占所有节点数的0.0049%。所有机器人的总体分析如下表所示。
在实验的一年中,pageviews和抓取数量的增长过程如figure 1 and 2所示。关于每个机器人抓取的详细描述在后续的章节中介绍。 Fig. 1 - The cumulative number of pageviews by the search bots in time. Fig. 2 - The cumulative number of nodes crawled by the search bots in time. 图3以对数的形式显示了每个机器人在各层抓取了多少节点,根节点的层数为0,最远的节点层数为30,因为在第n层有2n 个节点,所以抓取整棵树将在此图中显示为一条直线。 Fig. 3 - The number of nodes crawled after 1 year, grouped by node level. 在12层以前,Google几乎是一条直线,12层及前的多数节点都被抓取了(5524 out of 8191),而只有少数12层以后的节点被google机器人抓取。MSN表现了相似的行为,只是抓取的更少,它在第9层以前表现为直线(656 out of 1023 nodes were crawled)。而Yahoo的直线没有向下弯曲,但随着层数的增加它也无法请求所有网页了。 相比其它机器人,Yahoo对深层节点的抓取请求的更频繁,从14层到30层,平均每个被抓取的网页有10次请求。(see fig. 4)。 Fig. 4 - The average number of pageviews per node after 1 year, grouped by node level. Yahoo! Slurp
Fig. 5 - The Yahoo! Slurp tree. Yahoo! Slurp是发现二叉树的第一个搜索引擎。在发现它的第一个小时里,它对这个树的抓取就十分活跃,没秒2.3个节点(see the short animation)。第一天它就抓取了接近30万节点。 在接下来的一个月中,Slurp 的活动有所降低,但是正好一个月后,它对它上次访问的所有页面都进行了第二次请求。在animation,你可以发现在2005-05-14,树的大小增加了一倍。这种现象在一个月之后又重复出现,在 2005-06-13,树的大小为原始大小的3倍。Pageviews达到了90万而抓取得网页仍然是30万。图6显示了一个月以来这种阶梯状的增长。 Fig. 6 - The cumulative number of pageviews by Yahoo! Slurp in time. 在4个月后,Slurp开始请求大量的新节点,这是继初始轮次的抓取以来的第一次。它简单的请求了所有它已经有的URL。因为它已经索引了30万页,而每一页都有两个深层的连接,所以在8月末它请求了60万页的连接(the number of pageviews jumps from 100,000 to 160,000 pages in fig. 6)抓取得节点数也番了一翻。5个月后,Yahoo! Slurp开始了频繁的请求,还是保持阶段性的“发现”(e.g. after 10 months)。 Fig. 7 - The cumulative number of nodes crawled by Yahoo! Slurp in time. 在Yahoo搜索结果中,它报告了120万个索引(当前值)这看起来不太可能因为它只访问了105,971个节点,但是每个节点可获得两个不同的域名www.drunkmenworkhere.org and drunkmenworkhere.org. Note: the query submitted to Google and MSN yielded 35,600 pages on Yahoo. Yahoo is the only search engine that returns results with the query used above. Googlebot
Fig. 8 - The Googlebot tree. 与Yahoo的树相比,google的树更像是一颗自然生长的树。这是因为google对深层节点的访问没有像访问它们的父节点一样那么频繁。Yahoo只对前3层的节点访问非常频繁,而google对前12层的访问都很频繁(see fig. 4)。 树的这种形式符合google的PageRank算法,PageRank算法定义如下: "We assume page A has pages T1...Tn which point to it (i.e., are citations). The parameter d is a damping factor which can be set between 0 and 1. We usually set d to 0.85. There are more details about d in the next section. Also C(A) is defined as the number of links going out of page A. The PageRank of a page A is given as follows: PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn)) " 考虑到这棵树没有被其它的站点连接,每个节点的PageRank可以被下面的公式计算(ignoring links in the comments): PR(node) = 0.15 + 0.85 (PR(parent) + PR(left child) + PR(right child))/3 The only unknown when applying this formula iteratively, is the PageRank of the root node of the tree. Since this node was the homepage of drunkmenworkhere.org for a year, a high rank may be assumed. The calculated PageRank tree (fig. 9) shows similar proportions as Googlebot"s real tree, so the frequency of visiting a page seems to be related to the PageRank of a page. Fig. 9 - A binary tree of depth 17 visualising calculated PageRank as length of each line, when the PageRank of the root node is set to 100. Googlebot显示了一些不能被PageRank解释的有趣而古怪的行为。 The rightmost branch 从一开始,googlebot就抓取更多右面的节点。在2005-07-04它试图访问最右面的节点,就是那个拥有最高编号的节点。这种选取右边节点的行为从根节点开始直到20层结束。这种畸形的弧出现在树右边的结尾。 Searching node 1 在2005-06-30,googlebot访问了1号节点,最左边的节点。它不是从根节点沿着路径找到这个节点的,那它又是怎么发现这页呢?它是否是猜测的URL还是从某个外部连接进来的?一小时后,googlebot抓取了2号节点,2号节点是1号的父节点。这两个节点在图上只是一个很小的点浮在2005-06-30的树图的左边的最上面。一周以后,在2005-07-06(在尝试寻找最右节点的两天后),在06:39:39 到 06:39:59之间,googlebot用20秒的时间找到了通向这两个孤立点的路径,这条路径包括24个节点。它从树的根节点开始,直到找到2号节点,这条路径上googlebot没有选择过一条向右的分支。在大版本的图中,这条路径清晰可见。The nodes halfway the path were not requested for a second time and are represented by thin short line segments, hence the steep curve.
Yahoo-like subtree 在2005-07-23,google突然开始花费数小时在节点1073872896号附近抓取600个新节点,这些节点的大部分没有被再次访问过。 This subtree is the reason the number of nodes crawled by Googlebot, grouped by level, increases again from level 18 to level 30 in fig. 3. 在最近的6个月中,googlebot以固定的频率请求页面(大约每月260页,图10)并且阶段性的刷新它的缓存。 Fig. 10 - The cumulative number of pageviews by Googlebot in time. Fig. 11 - The cumulative number of nodes crawled by Googlebot in time. 当搜索节点时,google返回了554个结果。排在第一的是1号和2号节点,这两个节点时树中层次最深的节点,分别在29和30层。它们如此高的排名在之前的曲线中也有所反映(Searching node 1),它们排在前面很可能是因为它们的URL很短。在搜索结果第一页中的其它节点都在第4层,很可能是因为前3层的节点因为垃圾评论而遭到惩罚。当前结果到这里察看。 MSNbot
Fig. 12 - The msnbot tree MSNbot的树远小于Yahoo和Google的树。这棵树最有趣的特点是在书的右侧有一个不连续的分支。它出现在2005-04-29, 当msnbot 访问node 2045877824时。这个节点有一个两周以前的评论:I hereby claim this name in the name of...well, mine. Paul Pigg. 一周以前,msnbot请求了这个节点,googlebot以访问过这个点。这个位于24层的随即的节点被抓取了,因为一条连接来几Paul Pigg的站点masterpigg.com (now dead, Google cache)。所有3个搜索引擎都通过这个连接访问了该节点,并且这三个搜索引擎都没有把它和树的其它部分连接在一起。你可到此察看node 2045877824。 MSNbot从不连续的节点沿上下两个方向抓取,并创建了一个子树。这个子树导致了从18层到30层的一个子树,见图3。 第2大的不连续分支在图的中上部,来自一个连接uu-dot.com,这两个不连续的树在googlebot的树上也能清楚地看到。 Fig. 13 - The cumulative number of pageviews by msnbot in time. Fig. 14 - The cumulative number of nodes crawled by msnbot in time. 如上图所示,msnbot事实上在5个月后停止了对二叉树的抓取,MSN Search返回的结果数量是如何得出的,与此图的关系不得而知。 Spam bots 在一年中,5265条评论出现在103个不同的节点中。其中32个节点没有被任何搜索引擎访问,大多数(3652)评论出现在根节点中,评论中的词汇统计如下。
Top50的词清楚地显示,多数垃圾与药品相关。以下的饼图显示了相关的药品。 Fig. 15 - The share of various medicines in comment spam. 从文本中过滤出了域名,所有主要的域名如图16所示,以频率排序。 Fig. 16 - Number of spammed domains by top level domain Many email addressses submitted by the spam bots were non-existing addresses @drunkmenworkhere.org, which explains the high rank of this domain in the chart of most frequently spammed domains (fig. 17). |
评论