Этот посетитель бот или пользователь? PHP - PullRequest
3 голосов
/ 27 мая 2010

Я отслеживаю посетителей с помощью специальных функций, которые Google Analytics (и любые другие) могут предоставить мне в соответствии с их индивидуальными настройками.Я вызывал эту функцию ближе к концу моего сценария, но быстро столкнулся с тем, что наши клиенты сталкивались с тысячами страниц, вызываемых ботами (я полагаю, Google), и моя таблица заполнилась примерно 1 000 000 бесполезных и вводящих в заблуждение записей за периодмесяц.

Метод, который используют большинство людей, заключается в том, что они используют Javascript внизу страницы, боты не работают с javascript, и поэтому это легко исправить - но я ищу решение PHP.

Последнее, что я сделал, это использовал PHP get_browser:

http://us2.php.net/manual/en/function.get-browser.php

и проверил аспект crawler.Это не сработало.

Я посмотрел на этот пост: Не позволяя сценаристам сотрясать ваш сайт сотни раз в секунду

Но главное решение было сделатьчто-то похожее на SO, где он вызывает капчу.Моя цель - не останавливать ботов - я хочу, чтобы страницы сканировались.Я просто не хочу отправлять свои данные отслеживания посетителей, когда они там есть.

Я переключился на решение Javascript прямо сейчас, выполняя запрос AJAX, так как наши пользователи раздражались и из-за неточной статистики.

1 Ответ

1 голос
/ 27 мая 2010

Я никогда не использовал эту функцию раньше - интересно.

Теперь все основные поисковые системы объявят себя с отдельным заголовком User-Agent, и я полагаю, что эта функция получает большую часть своей информации - она, вероятно, сопоставляет значение User-Agent с таблицей поиска, и возможно, что более новые индексаторы не идентифицируются правильно.

Вы можете написать свой собственный список и протестировать суперглобальный $ _SERVER ['HTTP_USER_AGENT'] - но вам придется следить за обновлениями.

Это также не остановит плохих или вредоносных индексаторов, поскольку они склонны маскироваться под обычный браузер (как и любой другой заголовок клиента, User-Agent не следует доверять).

...