PDA

Просмотр полной версии : Отправка множества POST запросов


Limonsket
15.03.2017, 02:46
Сразу оговорюсь, что в программировании практически ничего не понимаю, но готов к обучению.

Требуется на сайт отправить много POST запросов (20-30, а может и более) за достаточно короткое время (2-3 запроса в секунду). С помощью Гугл Хрома скопировал пару запросов, но точно не знаю какое копирование использовать - Copy request headers, Copy as cURL (cmd) и Copy as cURL (bash)

Вот пример первого запроса:

Copy request headers


Code:
POST /prize/order/ HTTP/1.1
Host: site.ru
Connection: keep-alive
Content-Length: 152
Origin: https://site.ru
X-CSRF-Token: sIfxfFTx8MQNTxgKpUxoEQQdyDcXxelFYuWhPnHd7dW14iVqx5 P4LQTG208CBD+oY3dJlLnVI1XnazqHjuimsw==
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
X-Requested-With: XMLHttpRequest
Referer: https://site.ru/lk/
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: _ym_uid=1487017920750407080; _ym_isad=2; _dc_gtm_UA-64233422-1=1; _ga=GA1.3.393349717.1487017919; _gat_UA-64233422-1=1; _site_ru-session=STRRbndMZncrTldRWU9TRmh1T0VMcnk2RFp6eUJQZl Foa3poMWNxWGdDRWpRWFVIWURZZnZQVHVzZDVnODAwUzF5bThO Z1lmdlRtZUp5UXQvZ1ZaNllwTWZvbm0wQkhjZkZUWGh5VElCc1 dMZHNaaHhBVnE4VVBZWVNFMTVLT0ZXNW5xR21Fc2V3V053MmJn Z1BRTGNDR252eEpjZHRLQSthTGxWV0NwZUIxVURRdENhcU02dD JZWXI4V2lWUEtsQ0dEclZjYnJYSW9hcFZuRlNkWkJZS3JrK29p dGxCYmF4ekgyK050NUFQbVBDbno1SVRWa3NLcll0TmhLVGl2ST V4UmUydkM4WW9VelU4SFc4YWRMQVhPNGRpOGR1OGp2VkY0WEhq TURGdCtLUDlVRDB2aG5FcFJ0ZEpvVFJvM3EtLWw5ZlMzeDRmK2 gvMTkzTDNMdlFpTlE9PQ%3D%3D--dc160cf9c36a18db6d062612605f390a2974b328; _ga=GA1.2.393349717.1487017919; _ym_visorc_30954526=w

Copy as cURL (cmd)


Code:
curl "https://site.ru/prize/order/" -H "Cookie: _ym_uid=1487017920750407080; _ym_isad=2; _dc_gtm_UA-64233422-1=1; _ga=GA1.3.393349717.1487017919; _gat_UA-64233422-1=1; _site_ru-session=STRRbndMZncrTldRWU9TRmh1T0VMcnk2RFp6eUJQZl Foa3poMWNxWGdDRWpRWFVIWURZZnZQVHVzZDVnODAwUzF5bThO Z1lmdlRtZUp5UXQvZ1ZaNllwTWZvbm0wQkhjZkZUWGh5VElCc1 dMZHNaaHhBVnE4VVBZWVNFMTVLT0ZXNW5xR21Fc2V3V053MmJn Z1BRTGNDR252eEpjZHRLQSthTGxWV0NwZUIxVURRdENhcU02dD JZWXI4V2lWUEtsQ0dEclZjYnJYSW9hcFZuRlNkWkJZS3JrK29p dGxCYmF4ekgyK050NUFQbVBDbno1SVRWa3NLcll0TmhLVGl2ST V4UmUydkM4WW9VelU4SFc4YWRMQVhPNGRpOGR1OGp2VkY0WEhq TURGdCtLUDlVRDB2aG5FcFJ0ZEpvVFJvM3EtLWw5ZlMzeDRmK2 gvMTkzTDNMdlFpTlE9PQ^%^3D^%^3D--dc160cf9c36a18db6d062612605f390a2974b328; _ga=GA1.2.393349717.1487017919; _ym_visorc_30954526=w" -H "Origin: https://site.ru" -H "Accept-Encoding: gzip, deflate, br" -H "X-CSRF-Token: sIfxfFTx8MQNTxgKpUxoEQQdyDcXxelFYuWhPnHd7dW14iVqx5 P4LQTG208CBD+oY3dJlLnVI1XnazqHjuimsw==" -H "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" -H "Referer: https://site.ru/lk/" -H "X-Requested-With: XMLHttpRequest" -H "Connection: keep-alive" --data "utf8=^%^E2^%^9C^%^93^&authenticity_token=sIfxfFTx8MQNTxgKpUxoEQQdyDcXxel FYuWhPnHd7dW14iVqx5P4LQTG208CBD^%^2BoY3dJlLnVI1Xna zqHjuimsw^%^3D^%^3D^&prize^%^5BprizeId^%^5D=1604" --compressed

Copy as cURL (bash)


Code:
curl 'https://site.ru/prize/order/' -H 'Cookie: _ym_uid=1487017920750407080; _ym_isad=2; _dc_gtm_UA-64233422-1=1; _ga=GA1.3.393349717.1487017919; _gat_UA-64233422-1=1; _site_ru-session=STRRbndMZncrTldRWU9TRmh1T0VMcnk2RFp6eUJQZl Foa3poMWNxWGdDRWpRWFVIWURZZnZQVHVzZDVnODAwUzF5bThO Z1lmdlRtZUp5UXQvZ1ZaNllwTWZvbm0wQkhjZkZUWGh5VElCc1 dMZHNaaHhBVnE4VVBZWVNFMTVLT0ZXNW5xR21Fc2V3V053MmJn Z1BRTGNDR252eEpjZHRLQSthTGxWV0NwZUIxVURRdENhcU02dD JZWXI4V2lWUEtsQ0dEclZjYnJYSW9hcFZuRlNkWkJZS3JrK29p dGxCYmF4ekgyK050NUFQbVBDbno1SVRWa3NLcll0TmhLVGl2ST V4UmUydkM4WW9VelU4SFc4YWRMQVhPNGRpOGR1OGp2VkY0WEhq TURGdCtLUDlVRDB2aG5FcFJ0ZEpvVFJvM3EtLWw5ZlMzeDRmK2 gvMTkzTDNMdlFpTlE9PQ%3D%3D--dc160cf9c36a18db6d062612605f390a2974b328; _ga=GA1.2.393349717.1487017919; _ym_visorc_30954526=w' -H 'Origin: https://site.ru' -H 'Accept-Encoding: gzip, deflate, br' -H 'X-CSRF-Token: sIfxfFTx8MQNTxgKpUxoEQQdyDcXxelFYuWhPnHd7dW14iVqx5 P4LQTG208CBD+oY3dJlLnVI1XnazqHjuimsw==' -H 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript' -H 'Referer: https://site.ru/lk/' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' --data 'utf8=%E2%9C%93&authenticity_token=sIfxfFTx8MQNTxgKpUxoEQQdyDcXxel FYuWhPnHd7dW14iVqx5P4LQTG208CBD%2BoY3dJlLnVI1Xnazq Hjuimsw%3D%3D&prize%5BprizeId%5D=1604' --compressed

Вот второй запрос:

Copy request headers


Code:
POST /prize/order/ HTTP/1.1
Host: site.ru
Connection: keep-alive
Content-Length: 152
Origin: https://site.ru
X-CSRF-Token: sIfxfFTx8MQNTxgKpUxoEQQdyDcXxelFYuWhPnHd7dW14iVqx5 P4LQTG208CBD+oY3dJlLnVI1XnazqHjuimsw==
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript
X-Requested-With: XMLHttpRequest
Referer: https://site.ru/lk/
Accept-Encoding: gzip, deflate, br
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: _ym_uid=1487017920750407080; _ym_isad=2; _ga=GA1.3.393349717.1487017919; _ga=GA1.2.393349717.1487017919; _site_ru-session=U2pCazhUQ1BNTU9NNFdoLytRcDdjUlNPUVQzY2FnTH pVSzdBSjFHUVQ2OGZweHR6V1YybU8xRDQ1RHF1ZEhTUXJRMy9P dG1KVzJ6S3paellvU3U5YzBzODV2Z2tFYTZ1MEUrVHJwTTBVR0 5PZURySGlqOU5kcEg3Nm03OVorUm9jd1FkSVIrZktPd1JtVDVC ZUJ2eU8rc1F6blFqaU5yTkRra3RONFF2V3c1emZtNjVHbDRoc2 VXaEpBWmU0Njltc1RCLzJVVnVEZFcrZUxMMXdRUEJXUXNkMmx1 VEc2NU5TNE1XVjdDOGpjK3ZuNDEzSGVhTnNRNXR4TlhFTFRyZU U4L2FuZUQzL0FjemNlbzM3TEsvWmNBOGVBeU9SZXlNWG5ucmNP eFhBcDQ9LS1BUlZiYnZrcHVwUndwZFdCOS9MNWx3PT0%3D--d2d0e7356ec848a3789ef27224394e22de20e104

Copy as cURL (cmd)


Code:
curl "https://site.ru/prize/order/" -H "Cookie: _ym_uid=1487017920750407080; _ym_isad=2; _ga=GA1.3.393349717.1487017919; _ga=GA1.2.393349717.1487017919; _site_ru-session=U2pCazhUQ1BNTU9NNFdoLytRcDdjUlNPUVQzY2FnTH pVSzdBSjFHUVQ2OGZweHR6V1YybU8xRDQ1RHF1ZEhTUXJRMy9P dG1KVzJ6S3paellvU3U5YzBzODV2Z2tFYTZ1MEUrVHJwTTBVR0 5PZURySGlqOU5kcEg3Nm03OVorUm9jd1FkSVIrZktPd1JtVDVC ZUJ2eU8rc1F6blFqaU5yTkRra3RONFF2V3c1emZtNjVHbDRoc2 VXaEpBWmU0Njltc1RCLzJVVnVEZFcrZUxMMXdRUEJXUXNkMmx1 VEc2NU5TNE1XVjdDOGpjK3ZuNDEzSGVhTnNRNXR4TlhFTFRyZU U4L2FuZUQzL0FjemNlbzM3TEsvWmNBOGVBeU9SZXlNWG5ucmNP eFhBcDQ9LS1BUlZiYnZrcHVwUndwZFdCOS9MNWx3PT0^%^3D--d2d0e7356ec848a3789ef27224394e22de20e104" -H "Origin: https://site.ru" -H "Accept-Encoding: gzip, deflate, br" -H "X-CSRF-Token: sIfxfFTx8MQNTxgKpUxoEQQdyDcXxelFYuWhPnHd7dW14iVqx5 P4LQTG208CBD+oY3dJlLnVI1XnazqHjuimsw==" -H "Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36" -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" -H "Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" -H "Referer: https://site.ru/lk/" -H "X-Requested-With: XMLHttpRequest" -H "Connection: keep-alive" --data "utf8=^%^E2^%^9C^%^93^&authenticity_token=yYvOT6HsfFflHO8NCEqIQ2qo7QTk7NC JlUKvtVFKWo3M7hpZMo50vuyVLEivAt^%^2F6DcJsp0r8GpkQz DQMrn8R6w^%^3D^%^3D^&prize^%^5BprizeId^%^5D=1604" --compressed


Copy as cURL (bash)


Code:
curl 'https://site.ru/prize/order/' -H 'Cookie: _ym_uid=1487017920750407080; _ym_isad=2; _ga=GA1.3.393349717.1487017919; _ga=GA1.2.393349717.1487017919; _site_ru-session=U2pCazhUQ1BNTU9NNFdoLytRcDdjUlNPUVQzY2FnTH pVSzdBSjFHUVQ2OGZweHR6V1YybU8xRDQ1RHF1ZEhTUXJRMy9P dG1KVzJ6S3paellvU3U5YzBzODV2Z2tFYTZ1MEUrVHJwTTBVR0 5PZURySGlqOU5kcEg3Nm03OVorUm9jd1FkSVIrZktPd1JtVDVC ZUJ2eU8rc1F6blFqaU5yTkRra3RONFF2V3c1emZtNjVHbDRoc2 VXaEpBWmU0Njltc1RCLzJVVnVEZFcrZUxMMXdRUEJXUXNkMmx1 VEc2NU5TNE1XVjdDOGpjK3ZuNDEzSGVhTnNRNXR4TlhFTFRyZU U4L2FuZUQzL0FjemNlbzM3TEsvWmNBOGVBeU9SZXlNWG5ucmNP eFhBcDQ9LS1BUlZiYnZrcHVwUndwZFdCOS9MNWx3PT0%3D--d2d0e7356ec848a3789ef27224394e22de20e104' -H 'Origin: https://site.ru' -H 'Accept-Encoding: gzip, deflate, br' -H 'X-CSRF-Token: sIfxfFTx8MQNTxgKpUxoEQQdyDcXxelFYuWhPnHd7dW14iVqx5 P4LQTG208CBD+oY3dJlLnVI1XnazqHjuimsw==' -H 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Accept: */*;q=0.5, text/javascript, application/javascript, application/ecmascript, application/x-ecmascript' -H 'Referer: https://site.ru/lk/' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' --data 'utf8=%E2%9C%93&authenticity_token=yYvOT6HsfFflHO8NCEqIQ2qo7QTk7NC JlUKvtVFKWo3M7hpZMo50vuyVLEivAt%2F6DcJsp0r8GpkQzDQ Mrn8R6w%3D%3D&prize%5BprizeId%5D=1604' --compressed


Некоторые параметры отличаются и когда к примеру с помощью аддона Tamper Data я отловил запрос и отправил его спустя 2-3 минуты - он отправился (на сайте уведомление появилось), а когда пытаешься с теме же параметрами его повторно отправить - ничего.

Допустим я с помощью Tamper Data отловлю эти запросы и не дам им отправиться, а потом скопирую в блокнот, то можно как то их отправить с указанными требованиями (2-3 запроса в секунду)? И как это осуществить наиболее доступным способом?

pas9x
15.03.2017, 05:16
А зачем тебе это? Сайт дудосить собрался?


Limonsket said:
↑ (https://antichat.live/posts/4060494/)
Сразу оговорюсь, что в программировании практически ничего не понимаю


Ну без кодинга тут не обойдёшься. Разве что может существуют какие-то повторялки запросов, но я таких не знаю.


Limonsket said:
↑ (https://antichat.live/posts/4060494/)
Copy as cURL (bash)


Так ты curl этот сначала установи чтоб копировать запрос с ним. Ссылочки с официальных сайтов:

https://curl.haxx.se/download.html

http://www.paehl.com/open_source/?CURL_7.52.1

Сам курл: http://www.paehl.com/open_source/?download=curl_752_1_ssl.zip

Можно написать bat-ник и в нём прописать много запусков курла с нужными параметрами. Либо загнать один запуск курла в цикл. Ну и для эффекта многопоточности запустить одновременно несколько этих батников.

Limonsket
15.03.2017, 06:18
pas9x said:
↑ (https://antichat.live/posts/4060516/)
А зачем тебе это? Сайт дудосить собрался?


Скажем так, захотелось поучаствовать в акции с гарантированными призами, призы выкладывают в определенное время (00.00 по Мск) и в оч ограниченном кол-ве. И за две недели я так и не смог не одного взять - сайт можно сказать лежит от множества запросов, а через пару минут уже призов нет. Кто то из участников проговорился, что можно использовать какие то проги.

Лучше скажите, по двум представленным выше запросам, можно ли это как то автоматизировать?

Строки Content-Length, Cookie:, authenticity_token в обоих запросах отличаются, а вот остальные - полностью идентичные.

pas9x
15.03.2017, 09:11
Limonsket said:
↑ (https://antichat.live/posts/4060522/)
Лучше скажите, по двум представленным выше запросам, можно ли это как то автоматизировать?


Здесь целесообразно отслеживать появление товара. И как только он появляется - автоматом его забирать.

Т.е. скрипт толжен работать круглосуточно, и например каждые 3 секунды мониторить а не выложили-ли призы.

Смотря какой сайт и как он сделан. Вслепую тебе никто не даст ответ. И, судя по топику там используется csrf-токен который наверняка при каждом заходе на страницу меняется. Без умения кодинга лучше не пытаться что-либо делать, только время потратишь.

censored!
15.03.2017, 16:00
Старые и добрые Naviscope и InetCrack: http://rgho.st/8s6ZvndnT

Limonsket
16.03.2017, 01:23
pas9x said:
↑ (https://antichat.live/posts/4060536/)
Здесь целесообразно отслеживать появление товара. И как только он появляется - автоматом его забирать.
Т.е. скрипт толжен работать круглосуточно, и например каждые 3 секунды мониторить а не выложили-ли призы.


Это не требуется, я точно знаю (как и другие участники), что приps появляются ровно в 00:00 по Мск каждый день. Но когда все начинают одновременно посылать свои запросы, то если заранее на страницу не зайти будет 504 gateway time-out. Но у кого то получается заказать, а кто то (вроде меня) уже вторую неделю ни с чем(((


censored! said:
↑ (https://antichat.live/posts/4060679/)
Старые и добрые Naviscope и InetCrack


Скачал уже, еще пытался найти "живые" ссылки на Denyo Launch III (antiturk), но не нашел. (https://www.youtube.com/watch?v=ZFU3bnVnV5E)

А можете помочь с Naviscope и InetCrack? Я пытался и через ХР и через 7 отлочить POST запрос через Naviscope, но безрезультатно. Хотя он работает и запросы отлавливает, но не тот который мне нужно.

Если взять Temper Data или интсрумент разработчика из Гугл Хром, то в какой форме в InetCrack вставлять? Можете на примере из первого поста написать, чтобы было хоть немного понятнее?

censored!
16.03.2017, 15:23
Из ГуглХрома копируй Copy request headers и можешь прям сразу вставлять в InetCrack.

Все зависит от сайта, но напрягает X-CSRF-Token. Но в любом случае попробуй с малого - за N минут до начала заходишь на сайт. В одной вкладке открыл страницу с призом, в другой открыл корзину (скорее всего она там есть?). Переключился на вкладку с призом, тыкнул в кнопку, взял заголовок, его пихнул в InetCrack, там поставил галочку на Repeat Enable, переключился на вкладку с корзиной. Как поймешь что скоро - жми в InetCrack-е на SEND Packet и в браузере рефрешь вкладку с корзиной - чтобы как туда приз свалиться - завершить оформление.

p.s. Но не видя сам сайт - тяжело что-либо конкретно посоветовать. И, скорее всего, совет будет один - надо писать скрипт (php+cUrl).

Limonsket
17.03.2017, 05:51
Есть хорошие и плохие новости.

Хорошая - с помощью Инструментов разработчика в Firefox (возможно это работает и в Гугл Хром, не пробовал), если нажать с интересующим запросом "Изменить и снова отправить" - то запрос проходит. То есть приз заказывается. Но каждый раз жать на кнопку и отправлять запрос заново - сплошной геммор. Нужна автоматизация.

Плохая - пытался воспользоваться программой InetCrack - не получается. Возможно что то не так делаю.


censored! said:
↑ (https://antichat.live/posts/4061372/)
Из ГуглХрома копируй
Copy request headers
и можешь прям сразу вставлять в InetCrack.


А данные POST разве не нужно копировать?


Code:
utf8=%E2%9C%93&authenticity_token=WY%2BYWD2UiovQusVqG%2FtSxmL45bi tc5KctofsuykvK%2F3xVeC1DmvNioasQmBPb1aASMtQ%2ByrzS FYZbxdqaOtvHg%3D%3D&prize%5BprizeId%5D=1598

Вот эта самая строка prizeId%5D=1598 как бы определяет какой приз я хочу заказать. У драгого приза - другой 4-значный номер в конце.


censored! said:
↑ (https://antichat.live/posts/4061372/)
корзину (скорее всего она там есть?


Нет, корзины нет. Захожу под своим логином и паролем на сайт, там несколько кнопок - каждая для своего приза.


censored! said:
↑ (https://antichat.live/posts/4061372/)
И, скорее всего, совет будет один - надо писать скрипт (php+cUrl)


Правильно я понимаю, что если я установлю cURL, то можно через командную строку отправить данный POST запрос большое кол-во раз за опред время, написав скрипт?

censored!
17.03.2017, 12:13
Limonsket said:
↑ (https://antichat.live/posts/4061790/)
А данные POST разве не нужно копировать?


А они разве не содержаться в скопированном заголовке?


Limonsket said:
↑ (https://antichat.live/posts/4061790/)
Вот эта самая строка prizeId%5D=1598 как бы определяет какой приз я хочу заказать. У драгого приза - другой 4-значный номер в конце.


Эти id для одного товара могут быть разные? Каждый день показываются разные товары?


Limonsket said:
↑ (https://antichat.live/posts/4061790/)
Правильно я понимаю, что если я установлю cURL, то можно через командную строку отправить данный POST запрос большое кол-во раз за опред время, написав скрипт?


Надо написать скрипт. С cURL это будет проще. Этот скрипт будет логинится в личный кабинет, заходить на страницу с призами, выдирать token, возможно проверять - появился ли определенный товар с определенным id и если все ок - заказывать.

Limonsket
17.03.2017, 19:09
censored! said:
↑ (https://antichat.live/posts/4061865/)
А они разве не содержаться в скопированном заголовке?


Нет, данная строка отдельно копируется через "скопировать post данные" в инструментах разработчика


censored! said:
↑ (https://antichat.live/posts/4061865/)
Эти id для одного товара могут быть разные? Каждый день показываются разные товары?


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

censored!
17.03.2017, 19:16
Limonsket said:
↑ (https://antichat.live/posts/4062068/)
Наверное надо было сразу оговорился, что призы разные и каждому присвоен свой id, он не меняется. Но самые "жирные" призы расхватывают в первые минуты после полуночи.


Тогда cUrl.

FriLL
17.03.2017, 23:24
Я полным полно писал этих сканеров/парсеров/отправлятелей на python

Автор покажи сайт, посмотрим что там