Всем привет, ника не могу разобраться с работой парсера
мне необходимо из данного текста достать значения
<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 не отвечает) либо выдает ошибку
помогите пожалуйста решить проблему
1. MMalinovskij - 01 Января, 2023 - 02:34:40 - перейти к сообщению
2. Zireael - 01 Января, 2023 - 02:56:27 - перейти к сообщению
Скопировать нужный текст в буфер, запустить скрипт.
Данное регулярное выражение ищет число между <div class="size-val size-opt"> и </div>.
Скорее всего неверно составлен шаблон поиска. Возможно не экранированы кавычки.
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]);
}
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 не отвечает) либо выдает ошибку
Скорее всего неверно составлен шаблон поиска. Возможно не экранированы кавычки.
3. Kibor - 01 Января, 2023 - 02:59:50 - перейти к сообщению
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);
}
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("Финиш");
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("Финиш");
4. MMalinovskij - 01 Января, 2023 - 06:55:13 - перейти к сообщению
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);
}
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("Финиш");
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"
5. Kibor - 01 Января, 2023 - 07:12:53 - перейти к сообщению
MMalinovskij пишет:
только я не понимаю по какой логике это работает и что именно нужно подучить
CODE:
"td colspan=^"2^"><nobr^">"..."</nobr";
"^"2^"><nobr^">"..."</nobr"
"^"2^"><nobr^">"..."</nobr"
MMalinovskij пишет:
и что именно нужно подучить
Экранирующий символ
6. MMalinovskij - 01 Января, 2023 - 07:15:13 - перейти к сообщению
Kibor пишет:
MMalinovskij пишет:
только я не понимаю по какой логике это работает и что именно нужно подучить
CODE:
"td colspan=^"2^"><nobr^">"..."</nobr";
"^"2^"><nobr^">"..."</nobr"
"^"2^"><nobr^">"..."</nobr"
MMalinovskij пишет:
и что именно нужно подучить
Экранирующий символ
Значение J0018
<td colspan="2"><nobr>J0018</nobr></td>
7. Zireael - 01 Января, 2023 - 07:46:16 - перейти к сообщению
Цитата:
<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>)");
8. MMalinovskij - 01 Января, 2023 - 10:03:33 - перейти к сообщению
Kibor пишет:
MMalinovskij пишет:
только я не понимаю по какой логике это работает и что именно нужно подучить
CODE:
"td colspan=^"2^"><nobr^">"..."</nobr";
"^"2^"><nobr^">"..."</nobr"
"^"2^"><nobr^">"..."</nobr"
MMalinovskij пишет:
и что именно нужно подучить
Экранирующий символ
по какой то причине выдает пустой месседжбокс
<span style="font-family: "Helvetica Neue", Helvetica, "Lucida Grande", 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]
9. Kibor - 01 Января, 2023 - 10:10:17 - перейти к сообщению
Проблем нигде нет. Выкладывайте схему или код если кодом.
10. MMalinovskij - 06 Января, 2023 - 04:09:55 - перейти к сообщению
Никак не могу правильно настроить
Задача: спарсить данные из [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
нужно получить: Код/Арт (J0018), размер (36) при условии что строка зеленая или указано что (Є),Дроп ціна (1900)
это все нужно внести в таблицу чтобы получить вот такой результат [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Я получаю вот такой результат [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
При вот таких настройках [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Буду весьма благодарен за помощь
Задача: спарсить данные из [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
нужно получить: Код/Арт (J0018), размер (36) при условии что строка зеленая или указано что (Є),Дроп ціна (1900)
это все нужно внести в таблицу чтобы получить вот такой результат [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Я получаю вот такой результат [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
При вот таких настройках [img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Буду весьма благодарен за помощь