Как можно работать с капчей не по значениям HtmlElement, а по координатам

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 091
Благодарностей
31
Баллы
48
Всем привет, имеются сайты где имеется тэг с классом convas, это значит что картинку отрисовывают JavaScript, а это значит, что доступ к элементам страницы закрыт. Один из вариантов что бы прочитать хоть что ни будь использовать, определённый сектор где вырисовываются какие то значения. Вот и подумал этот сектор отправлять на сервис по разгадыванию капчи, что бы программа видела эти значения, но как это сделать?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
Может просто скринить её как-то и отсылать на сервис?
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 091
Благодарностей
31
Баллы
48
Может просто скринить её как-то и отсылать на сервис?
В том то и сложность, что скринить все не нужно, а нужен кусочек, потому что там много различных значений
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
В том то и сложность, что скринить все не нужно, а нужен кусочек, потому что там много различных значений
Можно скринить область, здесь уже вам нужно определить какую именно
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 091
Благодарностей
31
Баллы
48

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 091
Благодарностей
31
Баллы
48
Интересует
1) Как отскринить выбраную область
2) Как этот скрин отправить на сервис,
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
45009

кубик скриншота. вычисляете координаты и скрините кусок в файл. файл на капмостра. профит :-)
 
  • Спасибо
Реакции: VladZen

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 480
Благодарностей
5 917
Баллы
113
Интересует
1) Как отскринить выбраную область
2) Как этот скрин отправить на сервис,
Кубик обработки изображений (выше уже написали) позволяет сделать скриншот области инстанса - https://zennolab.com/wiki/ru:actions:image_processing
Кубик Это капча, там можно выбрать локальный файл для распознавания через сервис.
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 091
Благодарностей
31
Баллы
48

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 529
Благодарностей
3 375
Баллы
113
тэг с классом convas, это значит что картинку отрисовывают JavaScript, а это значит, что доступ к элементам страницы закрыт.
Для канваса есть метод в JS:
полученный base64 уже можно отправлять на сервис (своими методами).
 

SlavenTyz

Client
Регистрация
30.04.2018
Сообщения
1 091
Благодарностей
31
Баллы
48

Вложения

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 440
Благодарностей
5 459
Баллы
113

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 789
Благодарностей
5 721
Баллы
113
вот на форуме нашел рабочий код, у себя проверил. работает.
в переменную capcha_snippet до вызова кубика c# записать надо путь к файлу
и надо определить переменную на выходе, куда ответ запишеться

C#:
//Отправка капчи из картинки
var capcha = project.Variables["capcha_snippet"].Value;
var image = System.Drawing.Image.FromFile(@capcha);
string base64String = String.Empty;
using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
{
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
byte[] imageBytes = ms.ToArray();
base64String = Convert.ToBase64String(imageBytes);
}
var result = ZennoPoster.CaptchaRecognition("CapMonster2.dll", base64String, "is_russian=1");
// отрезаем лишнее
var tmp = result.Split(new [] {"-|-"}, StringSplitOptions.None);
if (tmp.Length > 1) return tmp[0];
return result;
 

SlipDez

Client
Регистрация
18.07.2018
Сообщения
398
Благодарностей
71
Баллы
28
Для канваса есть метод в JS:
полученный base64 уже можно отправлять на сервис (своими методами).
Жаль это не работает с frame которые на другом домене
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 529
Благодарностей
3 375
Баллы
113

SlipDez

Client
Регистрация
18.07.2018
Сообщения
398
Благодарностей
71
Баллы
28
Yuriy Zymlex

Подскажите, а если фрейм находится на другом домене т.е frame src=... скажем капча с помощью js доступа не будет из за политики безопасности а zp имеет доступ к этому элементу?
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)