首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >expressjs node.js为google/etc机器人和人工流量提供不同的数据。

expressjs node.js为google/etc机器人和人工流量提供不同的数据。
EN

Stack Overflow用户
提问于 2011-09-22 10:00:54
回答 2查看 1.7K关注 0票数 5

我想确定传入的请求是来自机器人(例如google,bing),还是来自人类,并为每个人提供不同的数据,例如,用于构建站点的客户端javascript的json数据或预处理的html。

使用expressjs,有没有简单的方法可以做到这一点?谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-09-22 20:59:08

我建议您根据请求的MIME类型(位于"Accept“头中)进行响应。您可以通过以下方式使用Express完成此操作:

代码语言:javascript
复制
app.get('/route', function (req, res) {
    if (req.is('json')) res.json(data);
    else if (req.is('html')) res.render('view', {});
    else ...
});
票数 3
EN

Stack Overflow用户

发布于 2011-09-22 15:04:49

你可以检查“Mozilla/5.0 (compatible;Googlebot/2.1;+http://www.google.com/bot.html”)的req.header('User-Agent')。如果是这样的话,你就知道这是谷歌,可以向它发送不同的数据。

http://www.google.com/support/webmasters/bin/answer.py?answer=1061943

如何获取headers http://expressjs.com/4x/api.html#req.get

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7508758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档