Как идентифицировать запрос скручивания - PullRequest
2 голосов
/ 18 сентября 2010

Есть ли способ определить в моем скрипте, поступает ли запрос от обычного веб-браузера или какого-либо скрипта, выполняющего curl. Я вижу заголовки и могу различать «User-Agent и другие несколько заголовков», но в curl могут быть установлены поддельные заголовки, поэтому я не могу отследить запрос.

Пожалуйста, предложите мне способы определения скручивания или другой подобный запрос не из браузера.

Ответы [ 3 ]

11 голосов
/ 18 сентября 2010

Единственный способ поймать большинство «автоматических» запросов - это кодировать в логике, которая выявляет действия, которые не могут быть людьми с браузером.

Например, слишком быстрое попадание на страницы, слишком быстрое заполнение формы, наличие внешнего источника в html-файле (например, поддельный файл css через php-файл) и проверка, загрузил ли запрашивающий IP его в предыдущий этап вашего сайта (вроде обратного приманки), но вам нужно будет исключить блокировку определенных IP-адресов / пользовательских агентов, иначе вы заблокируете веб-сайты Google. и т.д.

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

2 голосов
/ 18 сентября 2010

Строго говоря, нет пути.
Хотя существуют не прямые методы, но я бы никогда не стал обсуждать это публично, особенно на таких сайтах, как Stackoverflow, которые поощряют очистку экрана, автоматическую публикацию содержимого и прочую грязную роботизацию.

В некоторых случаях вы можете использовать тест CAPTCHA, чтобы отличить человека от бота.

0 голосов
/ 18 сентября 2010

Насколько я знаю, вы не видите разницу между "реальным" звонком из вашего браузера и звонком из curl.

Вы можете сравнить заголовок (User-agent), но это все, что я знаю.

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