Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: shatun on April 05, 2023, 03:06:52 PM
-
Есть простая капча в которой меняются картинки (их 5 шт). Раньше нужно было посчитать каких картинок меньше на ту и кликнуть.
Делал очень примитивно, но работало...
WAIT(5)
// поиск изображения Img.bmp в области 700,400 - 1200,700
GETSCREEN
COLORMODE(6)
scanpicture($var, 700,400, 1200,700, "Img.bmp")
WAIT(1)
// вывод массива, содержащего результаты поиска
while (arrsize($var) > 0)
$y = arrpop($var)
$x = arrpop($var)
end_cyc
LOGWRITE ("найдены координаты ",$x,":", $y)
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x,$y+50, $x+40, $y+90, "1.bmp") // Сохроняет скриншот 1 картинки
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN ($x+50,$y+50,$x+240,$y+100, "1.bmp", -1, 93) //поиск картинки
WAITMS(500)
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x+45,$y+45, $x+90, $y+90, "2.bmp")
WAITMS(500)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN ($x+90,$y+45, $x+240,$y+100, "2.bmp", -1, 93) //поиск картинки
WAITMS(500)
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x+95,$y+45, $x+140,$y+90, "3.bmp")
WAITMS(500)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN ($x+140,$y+40,$x+240,$y+100, "3.bmp", -1, 93) //поиск картинки
WAITMS(500)
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x+140,$y+40,$x+190,$y+90, "4.bmp")
WAITMS(500)
GETSCREEN
COLORMODE(6)
WAITMS(500)
IF_PICTURE_IN ($x,$y+40, $x+140,$y+90, "4.bmp", -1, 93) //поиск картинки
GETSCREEN // Clickermann помещает в свой графический буфер скриншот экрана
COLORMODE(6) // Применяет к этому скриншоту режим COLORMODE
SCREENSHOTFIX($x+190,$y+40,$x+240,$y+90, "5.bmp")
WAITMS(500)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN ($x,$y+40, $x+140,$y+90, "5.bmp", -1, 93) //поиск картинки
WAITMS(500)
LCLICK($x+110,$y+60)
LOGWRITE ("найдено 5")
END_IF
ELSE // "ИНАЧЕ"
LCLICK($x+160,$y+60)
LOGWRITE ("найдено 4")
END_IF
ELSE // "ИНАЧЕ"
LCLICK($x+115,$y+65)
LOGWRITE ("найдено 3")
END_IF
ELSE // "ИНАЧЕ"
LCLICK($x+65,$y+65)
LOGWRITE ("найдено 2")
END_IF
ELSE // "ИНАЧЕ"
LCLICK($x+20,$y+70)
LOGWRITE ("найдено 1")
END_IF
Сейчас усложнили задачу:
1. теперь некоторые картинки повёрнуты на 90, 180, 270 градусов и вот никак не найду какой командой мне их перевернуть.
2. иногда картинки зеркально отображены и тоже могут быть повёрнуты на 90, 180, 270 градусов, тоже не найду какой командой сделать зеркальное отображение картинки перед поиском.
-
Нет таких команд.
И не факт что повёрнутая картинка где-то там будет полностью совпадать с повёрнутой правильно. Если это web может влиять размер контейнера. Если картинки подготовлены в jpeg - сжатие.
Покажи, что за картинки хоть. Может есть другой способ чтоб не искать 5 * 4 * 3 = 60 вариантов. Цвета там посчитать основные.
-
повернуть картинки кликером на 90, 180, 270 градусов и или зазеркалить конечно можно, но имеет-ли смысл из за указанных выше причин? нужно предварительно проверять.
-
Покажи, что за картинки хоть. Может есть другой способ чтоб не искать 5 * 4 * 3 = 60 вариантов. Цвета там посчитать основные.
в данном случае только чёрные и белые цвета, но идея очень интересная.
пишут - Папка upload заполнена. Попробуйте файл меньшего размера или свяжитесь с администратором.
Файл 11КБ, закинул на postimges
(https://i.postimg.cc/VLw0TNms/3.png) (https://postimages.org/) (https://i.postimg.cc/Jh817sYt/4.png) (https://postimages.org/)
странно, капча вроде простейшая, но на некоторых ресурсах её сейчас устанавливают взамен рекапчи...
-
Файл 11КБ, закинул на postimges
(https://i.postimg.cc/VLw0TNms/3.png) (https://postimages.org/) (https://i.postimg.cc/Jh817sYt/4.png) (https://postimages.org/)
А эта же повёрнутая есть? Только не сам поворачивай.
Просто интересно, это она так нарисована или отмасштабирована. Похоже, что нарисована, всего 4 цвета. Можно считать все, а можно только самый тёмный.
Непонятно только почему размеры разные и зачем ты при поиске использовал % совпадения 93
-
она так нарисована или отмасштабирована
это сохранённые картинки которые сохранялись при помощи
COLORMODE(6)
SCREENSHOTFIX($x+45,$y+45, $x+90, $y+90, "2.bmp")
вот полностью кусок скрина капчи (как есть без сжатий)
(https://i.postimg.cc/d1c44CHJ/1.jpg) (https://postimages.org/)
процент совпадения очень часто ставлю 93-95 ... от настроения, а так они нормально ищутся :)
P.S. если открыть эту картинку на postimages.org https://i.postimg.cc/d1c44CHJ/1.jpg (https://i.postimg.cc/d1c44CHJ/1.jpg) то видно реальную картинку (без сжатия). Странно почему немного искажается картинка, я её заливал и устанавливал параметр - без сжатия.
-
вот полностью кусок скрина капчи (как есть без сжатий)
P.S. если открыть эту картинку на postimages.org https://i.postimg.cc/d1c44CHJ/1.jpg (https://i.postimg.cc/d1c44CHJ/1.jpg) то видно реальную картинку (без сжатия). Странно почему немного искажается картинка, я её заливал и устанавливал параметр - без сжатия.
Там jpeg, откуда там без сжатия. Такую значит и залил. Только что попробовал, залил png, всё нормально и ничего не перекодировалось.
Jpeg не подходит для анализа.
процент совпадения очень часто ставлю 93-95 ... от настроения, а так они нормально ищутся :)
Можно ещё под настроение ставить паузы секунд на 30 ;D
Если нормально ищется и так, зачем процент крутить? Он замедляет поиск и чем меньше, тем сильнее.
Дели на 5 зон и считай цвета по зонам. Если картинки не пережимаются и корректно поворачиваются, то значения совпадут. Даже если там не чётко в разумных пределах, ну будешь сравнивать с определённым допуском. Большинство картинок без труда отличишь. Могут попасться близкие пары, но цветов мало, так что тоже отличишь.
В данном случае, думаю всё просто. Вот решал подобным способом капчу http://crapware.aidf.org/forum/index.php?topic=1768.0 вот там было сложно. И полноцветные и фон специальный и размер менялся и могли чуть перекрываться. Скрины в той теме умерли, для понимания вот та капча:
(https://i.ibb.co/yhS3GhH/1.png) (https://imgbb.com/)
(https://i.ibb.co/30ytnZ5/2.png) (https://imgbb.com/)
-
Дели на 5 зон и считай цвета по зонам. Если картинки не пережимаются и корректно поворачиваются, то значения совпадут. Даже если там не чётко в разумных пределах, ну будешь сравнивать с определённым допуском. Большинство картинок без труда отличишь. Могут попасться близкие пары, но цветов мало, так что тоже отличишь.
В данном случае, думаю всё просто.
Ты прав. Неделю назад пришлось вернуться к этой задачке и всё оказалось достаточно просто.
При помощи PXLCOUNT считал сколько цветов в области и далее сравнивал количество.
$ColorsPxls_one = PXLCOUNT ($x-120,$y-60, $x-70, $y-10, 4144959)
У меня с этой капчей ещё одна засада... подскажите пожалуйста каким образом (если можно готовым куском кода) выяснить сколько картинок на капче? Просто их иногда бывает 5 или 6. А на видео видел, что и 7 картинок в капче может быть. Просто в зависимости от кол-ва картинок я выбираю другие координаты для подсчёта цветов каждой картинки.
-
Важное дополнение... На разных страницах ширина капчи может меняться.
-
У меня с этой капчей ещё одна засада... подскажите пожалуйста каким образом (если можно готовым куском кода) выяснить сколько картинок на капче? Просто их иногда бывает 5 или 6. А на видео видел, что и 7 картинок в капче может быть.
Так там же есть вертикальные полоски - границы блоков, по ним и определять. Ищешь картинку с вертикальной полосой в области капч и считаешь их количество.
-
Так там же есть вертикальные полоски - границы блоков, по ним и определять. Ищешь картинку с вертикальной полосой в области капч и считаешь их количество.
Раньше были. И да, можно было их посчитать. Сейчас их нет и я думаю каким образом посчитать количество пробелов (выделяя между картинками минимально допустимое кол-во белых пикселей) чтобы понять сколько картинок. Только вот эти пробелы между картинками разные т.к. в капче может быть 5, 6 или 7 картинок да и длинна капчи как я заметил может меняться....
-
У меня уже появилась мысль выделять вертикальную область в капче от заданной координаты - например шириной в 5 пикселей и смотреть есть в этой области пиксели кроме белых. Если есть, значит эта область попадает на картинку и можно считать, что это первая картинка. Дальше двигать правее эту область по координатам и таким образом посчитать сколько картинок. Только вот как подступиться к реализации пока не хватает моих знаний (((
-
Ну так ты просишь код, при этом не даёшь ничего, ни информации по новой версии, ни скринов нужных.
Получается: напишите код по не полному описанию. Оказывается там поменялось. Слава богу, что я не начал писать код и не выкинул время в мусорку.
-
Vint,
так всё дело в том, что там всё как раньше, но иногда в капче нет разделений в виде вертикальных полосок и у них иногда размер капчи в ширину меняется.
вот пример:
(https://i.postimg.cc/JhHKmY5W/1.png]https://i.postimg.cc/JhHKmY5W/1.png)
Тут вообще 8 картинок...
P.S. и спасибо за совет по поиску и подсчёту цвета. Прям чётко (безошибочно) работает такой метод.
-
Когда были полоски я делал вот так:
/////////////////////////////////////////////////////////////////////////////
// определяем сколько картинок
WAIT(5)
WAITMS(200)
GETSCREEN
//COLORMODE(6)
$ColorsPxls_img = PXLCOUNT (495,660, 800, 660, 15790320) // ищем указанные пиксели в области и считаем их
SCREENSHOTFIX(495,660, 800, 660, "проверка2.bmp") // Сохроняет скриншот
LOGWRITE ("Найдено пикселей: ", $ColorsPxls_img)
$Img_capca = $ColorsPxls_img + 1
LOGWRITE ("Всего картинок: ", $Img_capca)
// определяем сколько картинок - конец
/////////////////////////////////////////////////////////////////////////////
HALT