Как написах бот за търга AliExpress

работи
Знаете ли, има такива търгове на aliexpress - Gaga Deals, сега има сметище, но някога имаше много интересни оферти. Тяхната идея беше, че:

  • Продажбите започват на всеки час
  • Броят на продуктите е ограничен
  • Кой стана първи и чехли

Част от проблема беше, че обратният отчет на сайта изостава от реалния часовник, вероятно 5 минути на час. Освен това, ако актуализирате 2 страници едновременно, те могат да се заредят с изместване на брояча от 2 секунди.

Поради това е необходимо постоянно да се актуализира страницата и да се следи текущият брояч. Отворих няколко раздела, започнах да пиша бот с обмен на информация чрезlocalstorageразширения, но имаше постоянни проблеми на неактивни раздели, след това скриптът не стартира, след товаquerySelectorне намира нищо, след това няма текст с оставащото време в избрания елемент - няма какво да се анализира. И активната страница винаги работеше.

Проблемът изглежда е в оптимизирането на браузъра с невидими раздели, трябва да държите всички страници на видно място. Направих 9 кадъра точно в главната страница, в които продуктовите страници с брояча се актуализираха постоянно, но сега нямаше директен достъп до рамката. Странно, всички страници са в един и същ домейн, скриптът работи от контекста на разширението, но когато се опитате да получите достъп доframes[i].contentDocument- индийската национална колиба - се извиква „figvam“. Оказа се, че китайците на главната страница са присвоилиdocument.domain = “aliexpress.com”на домейна от второ ниво, не знам защо им трябва, няма други рамки на страницата. Опитах се да се върна, нямаше го. Оказва се, че нивото на домейна може да бъде намалено, но не и повишено. Дори ако страницата е заредена от същия домейн, който искате да зададете. Трябваше да променя домейна на второ ниво навсякъде -получи директен достъп до кадри. Разбор на времето, изчисляване на най-доброто и не го пипане, докато някой не зареди с по-добро време, актуализиране на други рамки - работи, най-добрият брояч винаги беше готов за щракване. След това броят на кадрите беше намален до 4.

Дебъгвах разширението на ненужни партиди, когато дойде времето „H“, безопасно ме отведе до captcha, който въведох и натиснах enter, след което поръчката беше направена автоматично. Всичко е готово и започнах да чакам ново теглене.

По време на следващото теглене ме очакваше изненада под формата на диалогови прозорци за избор на цвят и / или конфигурация, които все още не съм виждал и ботът ми спря на тях, съответните стъпки бяха бързо добавени и ...

Всичко се продава, всичко се продава винаги. Твърде бавно, какво да правя? Китайските и индийските услуги за разпознаване на captcha няма да работят по-бързо от мен. Не можете да прикачите нормална програма за разпознаване към разширение. Вече мислех да се върна към конзолното приложение и задавах въпроси на работа кой знае някакви модули или библиотеки за разпознаване на captcha. Започнах да гледам как да изтегля captcha, откъде да взема url. тъй като забелязах функцията, captcha картината се зарежда от друг домейн"checktoken1.alibaba.com", идентификаторът на сесията се замества в url и това е всичко, когато картината се актуализира, числата са различни всеки път.

Проверих предположението си така: вhostsблокирах домейнаchecktoken1.alibaba.comзаchecktoken1.alibaba.coРегистрирах необходимото IP и заредих снимката в друг раздел (най-много се страхувах от това, от фалшив домейн картината може да не се зареди и ще трябва да използвам втори компютър). Актуализиран е формулярът за captcha. Въведох старата стойност, формулярът работи, captcha беше валиден, от опит зададох стойността за нулиране на сесията на 15 минути. Рафинираностраница с рамки, направи текстово поле и снимка от друг домейн, въведе captcha около 5 минути преди тегленето и разширението работи като часовник, освен ако разбира се не е фалшив и няма други зли роботи.

Всъщност сега би било възможно да се върнете към конзолното приложение, без браузър щеше да работи много по-бързо, но мързелът ми каза защо да пиша отново, когато работи така.

През есента на 2013 г. разработчиците на aliexpress направиха нещо с captcha, вече не бяха доволни от предишната разпозната captcha и моят бот спря да работи. В помощен режим с ръчно разпознаване на captcha поръчката се обработва твърде бавно.

Hardcore conf в C++. Каним само професионалисти.