2010-08-24 2 views
1

Я хочу, используя PHP, различать фактическое лицо и бота. В настоящее время я отслеживаю просмотры страниц, и они сильно раздуты из-за того, что боты просматривают мои страницы, поэтому я хочу только записывать реальных людей. Неважно, если бы он не был на 100% точным, мне просто нужен простой способ сделать это через PHP.PHP: Дифференциация между человеком и ботом/другом

Чтобы быть ясным, это не для аналитики как таковой; это так, что я могу отслеживать, какие изображения ежедневно подаются, поэтому я могу создать сценарий «Лучшие изображения дня».

ответ

3

Вы должны проверять строку пользовательского агента, наиболее подходящие поисковые роботы будут сообщать о себе как таковые.

Google's spider например.

+0

Есть ли способ проверить, что кто-то человек (т. Е. Веб-браузер), в отличие от дисконтирования ботов? – Chris

+0

Как в стороне, если вы ищете «самое популярное изображение», и вы индексируете сайт, вы, вероятно, можете предположить, что паук обращался ко всем изображениям одинаково, он не должен влиять на популярность. – meagar

+0

@ Крис Не совсем, нет. Не заставляя всех ваших пользователей отвечать на капчу на каждую страницу, нет способа проверить, что они люди, и даже это не будет на 100% эффективным. – meagar

0

Я не уверен, что PHP является лучшим решением для такого рода проблем.
Вы можете прочитать How to block bad bots и How to block spambots, ban spybots, and tell unwanted robots to go to hell, чтобы увидеть больше решений о блокировании ботов, но на этот раз с apache.

Apache будет действовать быстрее, требуя меньше процессора для выполнения этой задачи, чем программа php.

+1

Блокировка очень отличается от дифференциации, особенно если вы действительно хотите, чтобы ваш сайт был указан в Google. – meagar

1

Во-первых, очевидно: проверьте агент пользователя.

Я использую другой трюк, который работает очень хорошо. Я сопоставляю файл robots.txt с файлом PHP и регистрирую IP в базе данных. Затем, когда вы регистрируете активность пользователя, я удостоверяюсь, что они не принадлежат одному из этих зарегистрированных IP-адресов. Если пользователь аутентифицируется через систему входа, я отслеживаю их независимо.

Конечно, ни одно решение не гарантирует точность, но для общего ведения журнала этого было достаточно для моих целей.

Смежные вопросы