una tablas tabla obtener funciona dinamicas definicion datos con como caracteristicas attribute agregar javascript web-crawler bots

tablas - Detectar rastreadores de búsqueda a través de JavaScript



obtener datos de una tabla html javascript (4)

Me pregunto cómo me ocuparía de detectar rastreadores de búsqueda. La razón por la que pregunto es porque quiero suprimir ciertas llamadas de JavaScript si el agente de usuario es un bot.

He encontrado un ejemplo de cómo detectar un determinado navegador, pero no puedo encontrar ejemplos de cómo detectar un rastreador de búsqueda:

/MSIE (/d+/./d+);/.test(navigator.userAgent); //test for MSIE xx

Ejemplo de rastreadores de búsqueda que quiero bloquear:

Google Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) Googlebot/2.1 (+http://www.googlebot.com/bot.html) Googlebot/2.1 (+http://www.google.com/bot.html) Baidu Baiduspider+(+http://www.baidu.com/search/spider_jp.html) Baiduspider+(+http://www.baidu.com/search/spider.htm) BaiDuSpider


El ejemplo de "prueba para MSIE xx" es solo un código para probar el agente de usuario contra una expresión regular. En tu ejemplo, el Regexp es el

/MSIE (/d+/./d+);/

parte. Simplemente reemplácelo con su propio Regexp con el que desee probar el agente de usuario. Seria algo asi

/Google|Baidu|Baiduspider/.test(navigator.userAgent)

donde la barra vertical es el operador "o" para hacer coincidir el agente de usuario con todos los robots mencionados. Para obtener más información sobre la Expresión regular, puede consultar este sitio, ya que javascript utiliza el RegExp de estilo perl.


Esta es la expresión regular que utiliza la biblioteca ruby ​​UA agent_orange para probar si un userAgent parece ser un bot. Puede restringirlo para bots específicos haciendo referencia a la lista de agentes de usuario de bot aquí :

/bot|googlebot|crawler|spider|robot|crawling/i

Por ejemplo, tiene algún objeto, util.browser , puede almacenar en qué tipo de dispositivo está el usuario:

util.browser = { bot: /bot|googlebot|crawler|spider|robot|crawling/i.test(navigator.userAgent), mobile: ..., desktop: ... }


La siguiente expresión regular coincidirá con los motores de búsqueda más grandes según esta publicación .

/bot|google|baidu|bing|msn|duckduckbot|teoma|slurp|yandex/i .test(navigator.userAgent)

Los motores de búsqueda de partidos son:

  • Baidu
  • Bingbot / MSN
  • Pato Pato a ganar
  • Google
  • Teoma
  • Yahoo!
  • Yandex

Además, he agregado bot como un paquete para pequeños rastreadores / bots.


Prueba esto. Se basa en la lista de rastreadores disponible en https://github.com/monperrus/crawler-user-agents

var botPattern = "(googlebot//|Googlebot-Mobile|Googlebot-Image|Google favicon|Mediapartners-Google|bingbot|slurp|java|wget|curl|Commons-HttpClient|Python-urllib|libwww|httpunit|nutch|phpcrawl|msnbot|jyxobot|FAST-WebCrawler|FAST Enterprise Crawler|biglotron|teoma|convera|seekbot|gigablast|exabot|ngbot|ia_archiver|GingerCrawler|webmon |httrack|webcrawler|grub.org|UsineNouvelleCrawler|antibot|netresearchserver|speedy|fluffy|bibnum.bnf|findlink|msrbot|panscient|yacybot|AISearchBot|IOI|ips-agent|tagoobot|MJ12bot|dotbot|woriobot|yanga|buzzbot|mlbot|yandexbot|purebot|Linguee Bot|Voyager|CyberPatrol|voilabot|baiduspider|citeseerxbot|spbot|twengabot|postrank|turnitinbot|scribdbot|page2rss|sitebot|linkdex|Adidxbot|blekkobot|ezooms|dotbot|Mail.RU_Bot|discobot|heritrix|findthatfile|europarchive.org|NerdByNature.Bot|sistrix crawler|ahrefsbot|Aboundex|domaincrawler|wbsearchbot|summify|ccbot|edisterbot|seznambot|ec2linkfinder|gslfbot|aihitbot|intelium_bot|facebookexternalhit|yeti|RetrevoPageAnalyzer|lb-spider|sogou|lssbot|careerbot|wotbox|wocbot|ichiro|DuckDuckBot|lssrocketcrawler|drupact|webcompanycrawler|acoonbot|openindexspider|gnam gnam spider|web-archive-net.com.bot|backlinkcrawler|coccoc|integromedb|content crawler spider|toplistbot|seokicks-robot|it2media-domain-crawler|ip-web-crawler.com|siteexplorer.info|elisabot|proximic|changedetection|blexbot|arabot|WeSEE:Search|niki-bot|CrystalSemanticsBot|rogerbot|360Spider|psbot|InterfaxScanBot|Lipperhey SEO Service|CC Metadata Scaper|g00g1e.net|GrapeshotCrawler|urlappendbot|brainobot|fr-crawler|binlar|SimpleCrawler|Livelapbot|Twitterbot|cXensebot|smtbot|bnf.fr_bot|A6-Indexer|ADmantX|Facebot|Twitterbot|OrangeBot|memorybot|AdvBot|MegaIndex|SemanticScholarBot|ltx71|nerdybot|xovibot|BUbiNG|Qwantify|archive.org_bot|Applebot|TweetmemeBot|crawler4j|findxbot|SemrushBot|yoozBot|lipperhey|y!j-asr|Domain Re-Animator Bot|AddThis)"; var re = new RegExp(botPattern, ''i''); var userAgent = ''Googlebot/2.1 (+http://www.googlebot.com/bot.html)''; if (re.test(userAgent)) { console.log(''the user agent is a crawler!''); }