infoNauta

Função PHP para identificação de acessos por Crawlers e Bots

Publicado em: 11/07/2017
Atualizado em em: 11/07/2017

Por: Sergio Mari Jr.

Categoria: Diário de Bordo
Comentários: 0

Google BotUma das demandas que mais cedo ou mais tarde aparece para quem desenvolve soluções para Interligência de Marketing Digital é a identificação de acessos feitos não por humanos, mas por bots, crawlers, indexadores e coisas do tipo.

A função abaixo foi criada a partir da controibuição de macherif e atualizada pela Cedilha Comunicação Digital. A lista de crawlers foi atualizada pela última vez em julho/2017 e precisa ser atualizada constantemente.

A função

function crawler_detect($USER_AGENT) {

	if (!$USER_AGENT) {
		return false;
	} else {

		//Array com os crawlers conhecidos
		$crawlers = array(
			'Abacho' => 'AbachoBOT',
			'accoona' => 'Accoona',
			'AcoiRobot' => 'AcoiRobot',
			'AhrefsBot' => 'AhrefsBot',
			'Altavista' => 'Scooter',
			'AltaVista2' => 'Altavista',
			'Apache' => 'Apache',
			'ASPSeek' => 'ASPSeek',
			'Baidu' => 'Baiduspider',
			'Bing' => 'bingbot',
			'Cliqzbot' => 'Cliqzbot',
			'CrocCrawler' => 'CrocCrawler',
			'DotBot' => 'DotBot',
			'Dumbot' => 'Dumbot',
			'eStyle' => 'eStyle',
			'Exabot' => 'Exabot',
			'Facebook' => 'facebook',
			'FAST-WebCrawler' => 'FAST-WebCrawler',
			'Flamingo' => 'Flamingo_SearchEngine',
			'GeonaBot' => 'GeonaBot',
			'GetIntent' => 'GetIntent',
			'Gigabot' => 'Gigabot',
			'Google' => 'Google',
			'GrapeshotCrawler' => 'GrapeshotCrawler',
			'ID-Search' => 'IDBot',
			'LinkedIn' => 'LinkedInBot',
			'ltx71' => 'ltx71',
			'Lycos' => 'Lycos',
			'Mediatoolkitbot' => 'Mediatoolkitbot',
			'Microsoft' => 'Microsoft URL Control',
			'MJ12bot' => 'MJ12bot',
			'MSN' => 'msnbot',
			'MSRBOT' => 'MSRBOT',
			'omgili' => 'omgili',
			'Pinterest' => 'Pinterestbot',
			'proximic' => 'proximic',
			'radian6' => 'radian6',
			'Rambler' => 'Rambler',
			'RukiCrawler' => 'RukiCrawler',
			'Scrubby' => 'Scrubby',
			'Skype' => 'SkypeUriPreview',
			'ToutiaoSpider' => 'ToutiaoSpider',
			'trendiction' => 'trendiction',
			'Twitter' => 'Twitterbot',
			'ubermetrics' => 'ubermetrics',
			'Yahoo' => 'Yahoo',
			'YandexBot' => 'YandexBot',
		);

		//Percorre array procurando correspondência
		$correspondencia = 0;
		foreach($crawlers as $crawler => $bot) {
			if (stripos($USER_AGENT, $bot) !== false) {
				$correspondencia++;
			}
		}

		if ($correspondencia > 0) {
			return true;
		} else {
			return false;
		}//correspondencia

	}//useragent

}//crawler_detect

Como usar

O argumento $USER_AGENT deve ser preenchido com a variável superglobal do PHP $_SERVER['HTTP_USER_AGENT']:

$agente = $_SERVER['HTTP_USER_AGENT'];
$bot = crawler_detect($agente); 

Caso a variável $bot receba o valor true significa que o acesso está sendo feito por um dos bots conhecidos pela lista da função. Caso receba o valor false significa que o acesso está sendo feito por um humano ou por algum bot desconhecido.

Utilidades

Há vários usos possíveis para essa solução. Destaco dois deles:

1) Evitar que o acesso de bots gerem estatísticas falsas, inflando, por exemplo, o número de views de um determinado conteúdo de modo a gerar dados distorcidos e decisões equivocadas.

2) Oferecer aos bots informações complementares sobre o conteúdo para melhorar ou facilitar a indexação. Se for esse o caso, cuidado para não cair em práticas de Black Seo.


Comentários

Seja o primeiro a comentar!

Faça seu comentário

Repita os caracteres no campo abaixo:



adobe agência de propaganda artigo científico banco central bitmap cabernet sauvignon cedilha comunicação digital comportamento do consumidor concorrência custo demanda desejo diferenciação endomarketing estratégia facebook forças competitivas gestão estratégica google illustrator imagens digitais indesign inovação instagram internet jornalismo linkedin livrista lucro marca mark-up marketing marketing de conteúdo marketing digital michael porter moeda comemorativa motivação mídia mídia digital mídias sociais necessidade numismática olimpiadas 2016 orkut photoshop php preço produto programação promoção propaganda publicidade real redes sociais relações públicas relevância reputação rio 2016 twitter valor vinho walter longo youtube