观察Google、Bing、Baidu等搜索引擎对JS的感知

和传说中一样,百度和soso对js感冒,bing和Google对js表现说得过去,sogou和youdao对js的表现还有待观察。也就是说bing和google蜘蛛是一定会抓取js代码的。。

观察的办法很简单,就是看各个搜索引擎的“网页快照”,然后查看其中由js作用才显示的内容部分是否能被查看到。

搜狐个人博客首页大量使用脚本调用,可以作为样本来观察,就拿去百度一下,必应一下,谷歌一下,然后对比快照来的。。

由于搜狐博客屏蔽了除Googlebot、baiduspider、Nutch、msnbot、Slurp这些蜘蛛之外的蜘蛛,所以有道的快照是没有的,soso的快照是流氓蜘蛛抓来的?搜狗抓去自家搜狐个人博客首页的快照简直就是个杯具(那不是个人首页,倒像是特定通路获取的摘要数据)!!

PS:搜狐个人博客首页的日志列表可能是延迟加载的。bing和google的蜘蛛都没有抓取到内容。

测试:可以弄个单独的页面加入JS生成的内容,然后引导搜索引擎收录,然后查看“快照效果”,另外如果可以的话最好看下服务器文件访问日志关于蜘蛛是否抓去了js文件(如果你的js是放在单独的文件中的话)?

附注(常见蜘蛛):

百度的蜘蛛:baiduspider
  Google的蜘蛛: Googlebot
  腾讯Soso:Sosospider
  Yahoo的蜘蛛:Yahoo Slurp
  Msn的蜘蛛:Msnbot
  Altavista的蜘蛛:Scooter
  Lycos的蜘蛛: Lycos_Spider_(T-Rex)

搜狐博客的robots.txt内容:
http://blog.sohu.com/robots.txt

ser-agent: Googlebot
Disallow:

User-agent: baiduspider
Disallow:

User-agent: Nutch
Disallow:

User-agent: msnbot
Disallow:

User-agent: Slurp
Disallow:

User-agent: *
Disallow: /

一段很好玩的浏览器js代码(让图片动起来)

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position=’absolute’; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval(‘A()’,5); void(0);

吧这段代码放到地址栏中回车看看吧。最好放到图片很多的页面地址栏中。

效果图:

会动的图片效果截图

这段代码主要是定义的函数A这个实现图片的循环移动

然后seInterval函数每隔5秒重复解释执行函数A

setTimeout和setInterval的语法相同。它们都有两个参数,一个是将要执行的代码字符串,还有一个是以毫秒为单位的时间间隔,当过了那个时间段之后就将执行那段代码。

不过这两个函数还是有区别的,setInterval在执行完一次代码之后,经过了那个固定的时间间隔,它还会自动重复执行代码,而setTimeout只执行一次那段代码。

Continue reading