Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: Парсинг значений
MMalinovskij
Отправлено: 01 Января, 2023 - 10:34:40
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 12
Дата рег-ции: Нояб. 2022  
Репутация: 0




Всем привет, ника не могу разобраться с работой парсера
мне необходимо из данного текста достать значения
<div class="size-val size-opt">36</div>
<div class="size-val size-opt">37</div>
<div class="size-val size-opt">38</div>
<div class="size-val size-opt">43</div>

код проекта не смог прикрепить так как максимальный размер сообщения 6 кб, могу сбросить на почту или в телегу


Парсер или просто не запускается (Kibor не отвечает) либо выдает ошибку
помогите пожалуйста решить проблему
 
 Top
Zireael
Отправлено: 01 Января, 2023 - 10:56:27
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4439
Дата рег-ции: Нояб. 2017  
Репутация: 585




Скопировать нужный текст в буфер, запустить скрипт.
CODE:
string text;
readclipboard(text); // получить текст из буфера обмена
messagebox(text);

string result[999];
int count = regexsearch(999, #result[0], text, "(?<<div class=.size-val size-opt.>)\d+(?=</div>)");
messagebox("Найдено совпадений: " + format(count));
for(int i=0; i<count; i++)
{
messagebox(result[i]);
}

Данное регулярное выражение ищет число между <div class="size-val size-opt"> и </div>.
 Цитата:
Парсер или просто не запускается (Kibor не отвечает) либо выдает ошибку

Скорее всего неверно составлен шаблон поиска. Возможно не экранированы кавычки.

(Отредактировано автором: 01 Января, 2023 - 10:58:35)

 
 Top
Kibor
Отправлено: 01 Января, 2023 - 10:59:50
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8183
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




11

CODE:
string Rez_Parser_Kib;

int eCol_Kib, eX_Kib, eY_Kib;
getdisplay(eCol_Kib, eX_Kib, eY_Kib);

string T="<div class=^"size-val size-opt^">36</div>^r^n"+
"<div class=^"size-val size-opt^">37</div>^r^n"+
"<div class=^"size-val size-opt^">38</div>^r^n"+
"<div class=^"size-val size-opt^">43</div>";

messagebox(T);

ParserStart(T, 0, "<br>", "известно", 0, 0);

loop()
{
goto KIB_2;
KIB_5: messagebox(Rez_Parser_Kib);
goto KIB_C6;
KIB_2: if (parser(-1, "size-opt^">", #Rez_Parser_Kib, 5, "</div")==1) goto KIB_5;
goto KIB_7;
KIB_C6:
}

goto KIB_Exit;

KIB_7: messagebox("Финиш");

KIB_Exit:;



function ParserStart(string text, int zp, string zona1, string zona2, int sm1, int sm2)
{
if (zp)
{
if (sm1!=0 || sm2!=0)text=cuttext(text, zona1, sm1, zona2, sm2);
else text=cuttext(text, zona1, zona2);
}
parserstart(text);
}

(Добавление)
Или просто код без визуального редактора
CODE:
string Rez_Parser_Kib;

string T="<div class=^"size-val size-opt^">36</div>^r^n"+
"<div class=^"size-val size-opt^">37</div>^r^n"+
"<div class=^"size-val size-opt^">38</div>^r^n"+
"<div class=^"size-val size-opt^">43</div>";

messagebox(T);

parserstart(T);

loop()
{
if (parser(-1, "size-opt^">", #Rez_Parser_Kib, 5, "</div")==1) messagebox(Rez_Parser_Kib);
else break;
}

messagebox("Финиш");
 
 Top
MMalinovskij
Отправлено: 01 Января, 2023 - 14:55:13
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 12
Дата рег-ции: Нояб. 2022  
Репутация: 0




 Kibor пишет:
<a href="(для просмотра ссылки Вам необходимо авторизоваться) src="https://i.ibb.co/M1Qyr8G/11.jpg" alt="11" border="0"></a>

CODE:
string Rez_Parser_Kib;

int eCol_Kib, eX_Kib, eY_Kib;
getdisplay(eCol_Kib, eX_Kib, eY_Kib);

string T="<div class=^"size-val size-opt^">36</div>^r^n"+
"<div class=^"size-val size-opt^">37</div>^r^n"+
"<div class=^"size-val size-opt^">38</div>^r^n"+
"<div class=^"size-val size-opt^">43</div>";

messagebox(T);

ParserStart(T, 0, "<br>", "известно", 0, 0);

loop()
{
goto KIB_2;
KIB_5: messagebox(Rez_Parser_Kib);
goto KIB_C6;
KIB_2: if (parser(-1, "size-opt^">", #Rez_Parser_Kib, 5, "</div")==1) goto KIB_5;
goto KIB_7;
KIB_C6:
}

goto KIB_Exit;

KIB_7: messagebox("Финиш");

KIB_Exit:;



function ParserStart(string text, int zp, string zona1, string zona2, int sm1, int sm2)
{
if (zp)
{
if (sm1!=0 || sm2!=0)text=cuttext(text, zona1, sm1, zona2, sm2);
else text=cuttext(text, zona1, zona2);
}
parserstart(text);
}

(Добавление)
Или просто код без визуального редактора
CODE:
string Rez_Parser_Kib;

string T="<div class=^"size-val size-opt^">36</div>^r^n"+
"<div class=^"size-val size-opt^">37</div>^r^n"+
"<div class=^"size-val size-opt^">38</div>^r^n"+
"<div class=^"size-val size-opt^">43</div>";

messagebox(T);

parserstart(T);

loop()
{
if (parser(-1, "size-opt^">", #Rez_Parser_Kib, 5, "</div")==1) messagebox(Rez_Parser_Kib);
else break;
}

messagebox("Финиш");


Спасибо, помогло, только я не понимаю по какой логике это работает и что именно нужно подучить, пытаюсь по примеру вытащить данные указанные ниже вылетают так же ошибки

<td colspan="2"><nobr>J0018</nobr></td>
<td colspan="2"><nobr>J0017</nobr></td>
<td colspan="2"><nobr>J0015</nobr></td>

Пробовал

td colspan="2"><nobr^">"..."</nobr"
"2"><nobr^">"..."</nobr"
 
 Top
Kibor
Отправлено: 01 Января, 2023 - 15:12:53
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8183
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 MMalinovskij пишет:
только я не понимаю по какой логике это работает и что именно нужно подучить


CODE:
"td colspan=^"2^"><nobr^">"..."</nobr";
"^"2^"><nobr^">"..."</nobr"


 MMalinovskij пишет:
и что именно нужно подучить

Экранирующий символ
 
 Top
MMalinovskij
Отправлено: 01 Января, 2023 - 15:15:13
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 12
Дата рег-ции: Нояб. 2022  
Репутация: 0




 Kibor пишет:
 MMalinovskij пишет:
только я не понимаю по какой логике это работает и что именно нужно подучить


CODE:
"td colspan=^"2^"><nobr^">"..."</nobr";
"^"2^"><nobr^">"..."</nobr"


 MMalinovskij пишет:
и что именно нужно подучить

Экранирующий символ



Значение J0018

<td colspan="2"><nobr>J0018</nobr></td>
 
 Top
Zireael
Отправлено: 01 Января, 2023 - 15:46:16
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4439
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
<td colspan="2"><nobr>J0018</nobr></td>

Проще заменить кавычки на точки. Точка будет означать один любой символ.
Т. е. искать между: <td colspan=.2.><nobr> и </nobr></td>

 Цитата:
regexsearch(999, #result[0], text, "(?<<div class=.size-val size-opt.> )\d+(?=</div> )" );

После ?< равно не дописал, должно быть так:
CODE:
regexsearch(999, #result[0], text, "(?<=<div class=.size-val size-opt.>)\d+(?=</div>)");

(Отредактировано автором: 01 Января, 2023 - 15:50:52)

 
 Top
MMalinovskij
Отправлено: 01 Января, 2023 - 18:03:33
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 12
Дата рег-ции: Нояб. 2022  
Репутация: 0




 Kibor пишет:
 MMalinovskij пишет:
только я не понимаю по какой логике это работает и что именно нужно подучить


CODE:
"td colspan=^"2^"><nobr^">"..."</nobr";
"^"2^"><nobr^">"..."</nobr"


 MMalinovskij пишет:
и что именно нужно подучить

Экранирующий символ


по какой то причине выдает пустой месседжбокс

<span style="font-family: &quot;Helvetica Neue&quot;, Helvetica, &quot;Lucida Grande&quot;, tahoma, verdana, arial, sans-serif, serif, EmojiFont; font-size: 22px; line-height: 22px; font-weight: bold; letter-spacing: 5px;">607407</span>

необходимо спарсить 607407[img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Здесь такая же проблема

<td colspan="2"><nobr>J0018</nobr></td>

необходимо спарсить J0018 [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
 
 Top
Kibor
Отправлено: 01 Января, 2023 - 18:10:17
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8183
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




Проблем нигде нет. Выкладывайте схему или код если кодом.
 
 Top
MMalinovskij
Отправлено: 06 Января, 2023 - 12:09:55
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 12
Дата рег-ции: Нояб. 2022  
Репутация: 0




Никак не могу правильно настроить

Задача: спарсить данные из [img](для просмотра ссылки Вам необходимо авторизоваться) /img]

нужно получить: Код/Арт (J0018), размер (36) при условии что строка зеленая или указано что (Є),Дроп ціна (1900)

это все нужно внести в таблицу чтобы получить вот такой результат [img](для просмотра ссылки Вам необходимо авторизоваться) /img]

Я получаю вот такой результат [img](для просмотра ссылки Вам необходимо авторизоваться) /img]

При вот таких настройках [img](для просмотра ссылки Вам необходимо авторизоваться) /img]



Буду весьма благодарен за помощь
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by