中文
English
繁体
日本語

搜索引擎蜘蛛爬行统计分析程序开发总结

2020-07-27
Source:

  一、搜查引擎蜘蛛爬行统计剖析的必要性:
  蜘蛛顺利爬行网页是网页被搜查引擎收录的前提前提,搜查引擎是否已爬行了网站,爬行了哪些页面以及返回哪些信息给蜘蛛,控制了这些情况咱们才干对网站进行有针对性的优化改进,因此查看蜘蛛爬行日志是一件十分重要但却十分苦楚的工作,尤其是SEOER及新站站长来说。比方从网上看到蜘蛛爬行某个页面后假如返回200 0 64 ,则表示此网页极有可能要被搜查引擎删除,HEAD 恳求返回404也表示要删除网页,假如咱们能依据日志及时发明此景象就能依据实际情况及时做出调剂。又如,蜘蛛爬行返回的301,302重定向及404错误等信息,也是网站治理员须要关怀的问题。因此可能看出剖析蜘蛛爬行日志的必要性。
  二、蜘蛛爬行统计的方法:
  因为蜘蛛机器人在网站爬行时是不会爬行JS,flash,img等标签的,因此,目前第三方统计软件 还无奈统计到蜘蛛爬行记录。因此目前剖析蜘蛛爬行重要通过以下方法:
  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服务器上,也可能节俭你空间可贵的流量。
  以上是我在开发这套程序的总结,程序目前已实现中心的剖析功能及显示功能.


share
Write a Review...