«CSRF token missing» — три слова, на которых умирает половина самодельных парсеров. Недавно они съели вечер и у меня. Разбираю, что это значит и почему дальше обычно не «починить», а «передумать».
Симптом: скрипт, который прекрасно логинится с вашего компьютера, с сервера получает отказ. Причина в том, что для площадки логин с адреса дата-центра — красная тряпка: нормальные пользователи оттуда не приходят, а боты — постоянно. Дальше больше: у крупных площадок веб-сессия и сессия мобильного приложения — разные вселенные, и кука из браузера для «мобильного» интерфейса недействительна. Антибот смотрит на десятки сигналов сразу, и правильный пароль среди них — далеко не главный.
Из этого следует практика для своих аккаунтов: работать из-под сессии своего же браузера, ходить с разумной частотой и паузами, не дёргать площадку каждые десять секунд круглосуточно. Так живут аккуратные интеграции.
Но есть и вторая половина ответа: иногда парсить просто не надо. Чужие персональные данные, обход платного доступа, прямой запрет в правилах — это не «серая зона», это чужая территория. И часто официальный путь оказывается короче: мы недавно потратили несколько дней на обходные способы публикации в одну соцсеть — и в итоге пришли к её официальному API, с которого и стоило начинать.
Мораль скучная: сначала ищем официальную дверь. Форточка почти всегда выходит дороже.
