{"id":14293,"url":"\/distributions\/14293\/click?bit=1&hash=05c87a3ce0b7c4063dd46190317b7d4a16bc23b8ced3bfac605d44f253650a0f","title":"\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0432 \u043d\u0438 \u043a\u043e\u043f\u0435\u0439\u043a\u0438","buttonText":"","imageUuid":""}

Можно ли открыть дверь в спецпроекте от Skoltech?

Очень любопытство замучило, что решил зарегаться ради этого. Увидел на vc баннер с текстом что-то вроде "докажи, что ты робот". Ведет сюда

надо ввести код из 3 цифр. Потерев стену, или заглянув в отладчик, получаешь задачу

Герой очень обрадовался победе своего соотечественника на «Оскаре-2018», начавшего речь словами: «Я — иммигрант». В честь этого на следующий же день он решил приготовить национальную закуску. Герой поехал в соседний город, который называли «городом моторов». Там продавали главный ингредиент нужного качества — с идентификационным номером 4046. Он скупил 0,73% от всего, что было продано на той неделе. Сколько он потратил?

Как-то решать это все желания нет. Полезем в хедеры. Там есть фраза x-this-is-csrf: THIS IS SPARTA! Пробуем 300. Мимо. 000 тоже не подходит. Жму "сдаюсь", - получаю текстбокс со скучной рекламной водой. Обидно, надежда, что раскроют суть, разбилась.

Ок, пытаемся решить. Факты, что национальность - мексиканец, город моторов - Детройт, главный ингридиент - авокадо, Оскар был вручен 5-го марта 2018, найти легко. Что с этим делать? Гуглеж приводит на неправильный путь к игре Detroit: Become Human. Ее продажи ненагугляемы.

Дальнейший гуглеж приводит к этому юпитер ноутбуку

А гуглеж avokado.xslx и к исходнику

Но вот тут подстава:

Понятно, что речь идет о plu4046, дате (неделе) 2018-03-04. Но как не крути в различных комбинациях объемы с умножением на цену и без, только 4046 и все, ничего не выходит. Удается подобрать до 10 трехциферных комбинаций, и ни одна не подходит.

Ладно, уже потеряно много времени. Жалко терять его дальше. Поэтому расчехляю PyCharm, и после ряда итераций пишу

import requests i = 1000 while 1: url = 'https://vc.ru/special/robot/open' myobj = '''------WebKitFormBoundaryeAULZCD9NSdYXgCv Content-Disposition: form-data; name="code" 300 ------WebKitFormBoundaryeAULZCD9NSdYXgCv--''' ii = ('0000'+str(i))[-3:] d = myobj.replace('300', ii) x = requests.post(url, data=d, headers={ 'x-this-is-csrf': 'THIS IS SPARTA!' }) print(ii) print(x.text) if "403" in x.text: i = i - 1

Итерированием с 999 до 0 пытался избежать ответа, который иногда появлялся на время (не помогло).

{"rc":418,"rm":"Попробуйте решить задачи","data":[]}

А использованием

headers={'x-this-is-csrf': 'THIS IS SPARTA!'})

добился хоть какого-то ответа.

Невзирая на то, что иногда еще вылезало

<html> <head><title>429 Too Many Requests</title></head> <body> <center><h1>429 Too Many Requests</h1></center> <hr><center>openresty</center> </body> </html>

скрипт таки прощупал весь диапазон с 0 до 999, пережидая 429 и 418 коды. И, увы, ничего.
Конечно, можно, предположить, что робот не ограничен 3 цифрами, и поэтому надо было итерировать хотябы до 99999999. Или, что робот не ограничен точностью, поэтому надо было итерировать с шагом в 0.0000001, и отправлять с разделителем. Или, что надо как-то обыгрывать число 17 на двери, или вообще отправлять не цифры (поле ввода поддерживает ввод не цифр). Или что надо искать подсказки в ссылке How-many-streets-of-Veldhoven-consumed-more-than-6280-kWh-in-2013. Но, как-то не верится, что авторы спецпроекта совсем уж повели себя, как Жорик.

Так что, прошу помочь. Уж очень любопытство достало.

0
81 комментарий
Написать комментарий...
Марат Салихов

Почему авокадо, я думаю это Synthetic Food Grade Oil 4046, а закуска Начос

Ответить
Развернуть ветку
Andrey Vladimirsky
Автор

Авокадо хорошо заходит потому, что слово органик есть в датасете (смотрите в тексте поста), и слово натуральный есть в задаче. Плюс, данные в датасете понедельно, что тоже хорошо к задаче подходит

Ответить
Развернуть ветку
78 комментариев
Раскрывать всегда