一、搜索引擎蜘蛛爬行统计分析的必要性:
蜘蛛顺利爬行网页是网页被搜索引擎收录的前提条件,搜索引擎是否已爬行了网站,爬行了哪些页面以及返回哪些信息给蜘蛛,掌握了这些情况我们才能对网站进行有针对性的优化改良,因此查看蜘蛛爬行日志是一件非常重要但却非常痛苦的工作,尤其是SEOER及新站站长来说。比如从网上看到蜘蛛爬行某个页面后如果返回200 0 64 ,则表示此网页极有可能要被搜索引擎删除,HEAD 请求返回404也表示要删除网页,如果我们能根据日志及时发现此现象就能根据实际情况及时做出调整。又如,蜘蛛爬行返回的301,302重定向及404错误等信息,也是网站管理员需要关心的问题。因此可以看出分析蜘蛛爬行日志的必要性。
二、蜘蛛爬行统计的方法:
由于蜘蛛机器人在网站爬行时是不会爬行JS(多次爬行只执行0次或者一次),flash,img等标签的,因此,目前第三方统计软件 (如阿江、中国站长站、雅虎、google等统计系统)还无法统计到蜘蛛爬行记录。因此目前分析蜘蛛爬行主要通过以下方法: 1、利用PHP,ASP根据浏览器返回的USER_AGENT来动态进行跟踪记录,这样的确可以实现目的,但其缺点很明显:
a)加重服务器负担,对于内容多及权重高的网站,蜘蛛抓取是非常频繁的。在网页中插入的代码会额外加重服务器的负担。
b)由于搜索引擎相对来说比较喜欢静态页面,很多网站都利用CMS把内容生成静态文件,这样就无法统计了。湖南某seo公司介绍使用img标签或者script方式,即在静态文件中将统计脚本利用img或者script标签调用的方式,此方法经过我一个月的试验,无法实现,蜘蛛不抓取页面。
2、利用第三方日志分析工具:如linux下awstats及windows下的Webalizer,其缺点也很明显。比如如果您是虚拟主机用户的话,由于每天产生的日志非常多,每次分析时下载日志文件是一件非常痛苦的事。同时这些软件太专业了,不适合一般站长使用。
3、如果您有更好的蜘蛛爬行分析方法请您和广大站长一起分享。
三、专门针对搜索引擎蜘蛛爬行统计的日志分析工具开发总结:
1、 我们分析日志中需要关心蜘蛛爬行相关资料:
a)蜘蛛爬行日期:根据此来查找蜘蛛爬行的规律。
b)蜘蛛IP地址:不同来源的IP地址的蜘蛛的作用是不同,可以结合爬行日期及下面要讲到的请求方式HEAD,GET来进行更详细的规律总结。
c)请求方式:主要有HEAD和GET方式,其作用是不同的。HEAD方式一般是上次蜘蛛来访问时发生一次或多次404错误,因此蜘蛛发送HEAD请求确认此网页是否存在,一旦发送此请求如果返回依然是404的话,那么您的网页就要被搜索引擎从数据库中删除了。GET方式大家都很明白就不说明了。
d)爬行页面:蜘蛛爬行了哪些页面。
e)状态码:服务器给蜘蛛返回的状态码,我们一般关心的是200,301,304,302,404,尤其是404及301,302。404表示死链,极大影响网站优化,301,302目前还是不能被搜索引擎友好识别,有作弊的嫌疑。
f)流量:在落伍上看到很多个人站长反应自己的服务器被蜘蛛拖跨,虽然这种说法有点夸张,但对服务器产生的压力绝对不容忽视,尤其是某些太疯狂的蜘蛛,每天产生很大的流量,因此我们需要统计出这些蜘蛛的相关信息,对我们不关系的搜索引擎蜘蛛可以在robots.txt中进行限制,以节约我们宝贵的服务器资源。
综合以上考虑,使用WEB语言开发一套一个使用简单,但功能专业的蜘蛛爬行统计程序放在自己的WEB空间上。这样可以随时随地检查蜘蛛爬行日志是非常必须的,并且可以避免下载日志的痛苦(当然,如果您使用的是独立服务器的话且你能熟练使用那些专业的日志分析工具就不提了),如果能实现以上功能的同时我们在结合一些第三方的统计工具,那么我们小站长就完全可以撇开那些专业的日志分析软件。
2、开发语言的选择:由于这套分析程序是放在WEB服务器上的,因此考虑移植性是非常重要的,在WEB语言中,主要有JSP,php,asp,asp.net语言,JSP一般服务器是不支持的,ASP及.net在LINUX平台下不支持,唯一可以选择的是PHP语言。一般的windows及linux主机都会支持。其可移植性比较好。
3、程序扩展性:毕竟一个人的能力无法满足大家不同的需求,因此程序在设计时将数据分析和表现进行隔离,我们将蜘蛛数据分析模块独立出一个只有7行代码的文件,可以方便的根据服务器日志的格式重写,因此您如果更换空间或者日志格式发生变化,您只需要根据我们提供的接口标准对分析模块重写即可,这并不需要多么高的程序开发水平。而不需要动其他任何文件,或者您将您的日志样本提供给我们,我们为您重写.程序还可以自定义统计蜘蛛类型,这样可以提高分析速度,远程分析日志等。
4、难点及局限性:在开发过程中遇到一个非常重要的问题,就是分析速度,WEB日志动辙几十上百兆甚至G级,因此对于使用PHP语言来分析,既要考虑服务器承受能力,又要考虑分析速度,否则很容易导致超时现象,因此一套高效的算法是非常重要的,同时由于一般的日志记录条数都很多,我们放弃使用数据库,因为几十万条数据的插入及百万级的数据查询是相当痛苦的事情,对服务器的压力太大,会把你的服务器瞬时CPU达到峰值,而且这些数据并不需要长期保存,毕竟要考虑大多数的虚拟主机站长.同时为了满足部分站长的需求,程序将分析出来的蜘蛛日志按一定的格式写入文本文件,您可以自己用任何一种语言编写一段简单的读文件,插入数据库的代码将日志长期保存。通过不同的算法比较,目前找到的最好的算法分析速度如下:
本地分析: P4 1.7G+512M内存+WinXp环境(笔记本):
日志:100万行,完全分析时间:10-15秒
VPS:384M内存+ Linux:
日志:100万行,完全分析时间:22-28秒
远程分析:即日志和分析系统不在同一台机器上,远程分析的速度主要取决于两个网络之间的速度。
远程环境(日志存放位置):VPS:384M内存+ Linux,10M带宽共享
本地环境(分析系统位置):P4 1.7G+512M内存+WinXp环境(笔记本),2M ADSL拨号网络
日志:15万行,完全分析时间:20-25秒
由此可见,远程分析速度只有本地分析的1/10,因此还是建议将系统上传到WEB服务器上,也可以节约您空间宝贵的流量。
以上是我在开发这套程序的总结,程序目前已完成核心的分析功能及显示功能.
程序演示地址:.
更详细的开发介绍:
希望站长网能有高人给我指点指点,主要还是在提高算法效率上。进一步完善后将放出下载地址。 此文首发admin5,转载请务必保证其完整性!
杭州市滨江区伟业路3号
业务热线(微信同号):18143453325
业务邮箱:2848414880@qq.com
业务QQ:2848414880
顶部
合作
微信
公众号