Любая защита приводит к деградации UX, например постоянные каптчи или задержка 5с при валидации CF. Всякие фильтры по IP/прокси/VPN приводят к отвалу сразу большого % легитимных юзеров, например множество сайтов блокируют доступ с серверных IP, при этом такое же множество клиентов использует VPN на своих серверах
Не вижу смысла защищаться от парсинга, только от такого, который создает нагрузку(правильной настройкой rate-limit например)
Всегда интересно было какие алгоритмы проектируются для экстремальных ситуаций, помимо банальной экстренной остановки, например когда против правил на тебя летит Камаз по встречке)
Для всех кто хочет упростить себе жизнь и получать данные проще и быстрее — наша команда подготовила статью по сбору данных с IMDB с помощью A-Parser: a-parser.com/resources/269
Мы собрали базу в 182370 фильма за 1.5 часа, база в формате JSON доступна по линку в конце статьи
Сидим на pg 10 с 3ей беты на продакшене, в первую очередь из за встроенного партицирования, полет отличный. Печально что логическая репликация не поддерживает репликацию схемы
Можно изобретать велосипеды, а можно взять A-Parser и получить из коробки многопоточность, работу с regex и XPath, сложные парсеры можно целиком писать на JavaScript(ES6)
в Perl модулях необходимость возвращать true связанна с этапом компиляции, на котором выполняется код модуля и есть возможность вернуть false если что то пошло не так. смешные цитаты про бесполезность и раздражение ))
cypress можно параллелить из коробки или через sorry-cypress
Не вижу смысла защищаться от парсинга, только от такого, который создает нагрузку(правильной настройкой rate-limit например)
Мы собрали базу в 182370 фильма за 1.5 часа, база в формате JSON доступна по линку в конце статьи
Requests per second: 4483.65 [#/sec] (mean)
1 поток:
Requests per second: 7099.00 [#/sec] (mean)
пример очень упрощен, отсутсвуют какие либо проверки, но скорость говорит за себя
если ещё добавить prefork…