我一直在搜索npm包,但它们似乎都没有得到维护,并且都依赖于过时的用户代理数据库。有没有可靠的和最新的包,可以帮助我检测爬虫?(主要来自Google,Facebook,...对于SEO),或者如果没有包,我可以自己写吗?(可能基于最新的用户代理数据库)
更清楚地说,我正在尝试创建一个同构的/通用的React网站,我希望它可以被搜索引擎索引,它的标题/元数据可以由Facebook获取,但我不想在所有正常请求上预渲染,这样服务器就不会超载,所以我考虑的解决方案只是对来自爬虫的请求进行预渲染
发布于 2017-05-12 17:14:46
我找到的最好的解决方案是useragent库,它允许您这样做:
var useragent = require('useragent');
// for an actual request use: useragent.parse(req.headers['user-agent']);
var agent = useragent.parse('Googlebot-News');
// will log true
console.log(agent.device.toJSON().family === 'Spider')它速度很快,并且很好地保持了更新。这似乎是最好的方法。在浏览器中运行上述脚本:runkit
发布于 2016-01-07 19:14:27
对于您搜索npm包,我没有什么可添加的。但是您的问题对于一个最新的用户代理数据库来构建您自己的包,我建议您使用ua.theafh.net
目前,它拥有截至2014年11月的数据,据我所知,它拥有超过540万代理,也是最大的用户代理搜索引擎。
发布于 2021-08-21 02:48:43
我发现这个内置了isbot()函数的isbot包。在我看来,这个包得到了适当的维护,而且它们保持了所有的up-to-date。
使用:
const isBot = require('isbot');
...
isBot(req.get('user-agent'));https://stackoverflow.com/questions/34647657
复制相似问题