Как обнаружить ботов-гигантов в социальных сетях и доработать useragent в php? - PullRequest
0 голосов
/ 19 февраля 2019

Я пытаюсь создать скрипт, который будет захватывать ПОЛЬЗОВАТЕЛЬСКОГО АГЕНТА пользователей. Это легко сделать с помощью $ _ SERVER ['HTTP_USER_AGENT']

пример: ниже приведенывсе Twitter-боты, которые обнаруживают по $ _ SERVER ['HTTP_USER_AGENT']

Я просто публикую ссылку на скрипт php в твиттере, и он обнаруживает ботов: here

Вот боты, захваченные HTTP_USER_AGENT твиттер-сети.

1

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.2) Gecko/20090729 Firefox/52.0

2

Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)

3

Mozilla/5.0 (compatible; AhrefsBot/6.1; News; +http://ahrefs.com/robot/)

4

Mozilla/5.0 (compatible; TrendsmapResolver/0.1)

5(Не уверен, что это бот или обычный агент)

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36

6

Twitterbot/1.0

7

 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Applebot/0.1; +http://www.apple.com/go/applebot)

Теперь я хочу Уточнить / отфильтровать Имя бота из обнаруженного HTTP_USER_AGENT

пример:

rv:1.9.1.2
Trident/4.0
(compatible; AhrefsBot/6.1; News; +http://ahrefs.com/robot/)
(compatible; TrendsmapResolver/0.1)
Twitterbot/1.0
(Applebot/0.1; +http://www.apple.com/go/applebot)

Что я пробовал до сих пор:

if (
    strpos($_SERVER["HTTP_USER_AGENT"], "Twitterbot/1.0") !== false ||          
    strpos($_SERVER["HTTP_USER_AGENT"], "Applebot/0.1") !== false
) {
    $file =fopen("crawl.txt","a");
    fwrite($file,"TW-bot detected.\n");
    echo "TW-bot detected.";
}
else {
     $file =fopen("crawl.txt","a");
    fwrite($file,"Nothing found.\n");
    echo "Nothing";
}

Но почему-то вышеприведенный код не работает. Позвольте мне знать, гдеЯ ошибаюсь, и в crawl.txt всегда отображается Ничего не найдено , дайте мне знать правильный / лучший / лучший способ обнаружения ботов или любое направление или руководство оценивается.

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете обнаружить, что легко обнаружить ботов, которые регистрируют простые предварительные просмотры веб-сайтов, но пользовательские агенты ботов, которые ищут ограниченный контент, намного сложнее.

Вам придется сделать большечем просто разобрать UA.Будет также необходим опрос REMOTE_ADDR.Вы отправляете каждый запрос через что-то вроде http://ip -api.com , чтобы определить, поступает ли он из центра обработки данных.Будьте осторожны с пользователями с прокси, они будут вызывать ложные срабатывания.Вы можете пойти дальше и исследовать возможности браузера с помощью Javascript, но учтите, что это сложная проблема, и это постоянная гонка вооружений между инструментами обнаружения поставщиков и (как правило) рекламодателями в черной шляпе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...