我每天都在使用phantom在我的网站上预渲染动态页面。然后我编写了一些代码来检查请求的用户代理,并在请求来自bot时提供预呈现的html快照。我的机器人阵列是:

var socialBots = [
  "facebookexternalhit/1.0", "facebookexternalhit/1.1", "FacebookExternalHit",
  "twitterbot", "TwitterBot", "Twitterbot/1.0",
  "LinkedInBot",
  "rogerBot", "rogerBot/1.0"
];

然后我的nodejs代码(使用express)监听机器人程序并提供快照:
app.use(function(req, res, next){

  var userAgent = req.get("user-agent"),
      socialBot = false;

  for (i=0; i<socialBots.length; i++) {
    if (userAgent.indexOf(socialBots[i]) > -1) {
      socialBot = true;
      break;
    }
  }

  if (socialBot) {
    //serve snapshot
  }

});

这对facebook和twitter来说很好,但是数组的最后一行应该是moz-seo,似乎不起作用。Moz-Seo在最后一次爬网时没有得到我的快照。我刚才是搞错了用户代理还是别的什么?

最佳答案

Rogerbot的用户代理是:
Rogerbot/1.0(http://moz.com/help/pro/what-is-rogerbot-,Rogerbot爬虫[email protected]
你需要把rogerbot小写到
罗杰波特

09-16 07:40