асинхронную функцию используй. отправляй в нее по 15 логинов
Переносы строк. Сжатие пробелов
-
Здравствуйте. При выполнении действия "Xpath получить текст", текст пишется в одну строку и не сжимаются пробелы по краям. Подскажите как привести текст в нормальный вид со всеми переносами строк и сжатием пробелов. Теги переносов в html могут быть разные как br, так и p
-
@john_bradley лучше конечно сайт скинуть)
Что бы убрать пробелы можно использовать .trim()
Или метод описанный ruzne - https://community.bablosoft.com/post/30199Так же, можно получать все эти данные отдельно друг от друга и потом уже "склеивать".
-
Я же приложил фаил.Он там описывает другой метод, как наоборот все записать в одну строку
-
Вот еще скриншот на всякий случай https://yadi.sk/i/O6K-KjSrzFj-GQ
-
@john_bradley said in Переносы строк. Сжатие пробелов:
переносами строк
https://community.bablosoft.com/topic/3115/как-разделить-такую-строку/9
список/разделить выбираете разделитель сами.
@john_bradley said in Переносы строк. Сжатие пробелов:
и сжатием пробелов
@uraabk said in Переносы строк. Сжатие пробелов:
Что бы убрать пробелы можно использовать .trim()
-
Т.е. надо распарсить все на строки через например разделитель <br/> потом удалять оставшиеся теги регуляркой и применять .trim()? А если будут разделители строк </p> как указать 2 разделителя для парснга строки?
Я немного другим способом попробовал это сделать, https://yadi.sk/i/9oRGOIKRuKpkrQ но не могу понять почему удаляется тег <a> вместе с текстом.
0_1543862548226_тест.xml -
@john_bradley said in Переносы строк. Сжатие пробелов:
Здравствуйте. При выполнении действия "Xpath получить текст", текст пишется в одну строку и не сжимаются пробелы по краям. Подскажите как привести текст в нормальный вид со всеми переносами строк и сжатием пробелов. Теги переносов в html могут быть разные как br, так и p
Можно использовать регулярное выражение для "сжатия" пробелов:

Вот скрипт
-
@john_bradley
Если они рядом то хоть всю строку, но действие в списке, а не в инструментах. Но если они не рядом никак это разные списки будут.
У меня нет времени разбирать что вы там удаляли для конспирации, проект не открывается

Тег а это ссылка
тег а -
Ничего не удалял, вот проект, не знаю почему не залился нормально https://yadi.sk/d/_2253V21Vp_Ikg
Я знаю что a href это ссылка, а то что находится между >< это текст https://yadi.sk/i/VvP4FkZ5DquhAQ
Ну раз нет времени и на этом спасибо. -
@john_bradley Я не со зла посмотрел ведь) Правда хз что он но не запустился трижды перекачивал. Так ну теперь вижу. Ну он получает одну ссылку. А что именно вам надо? если вы про разделитель то тот который имел в виду я вот он можете писать там что хотите он по нему и будет делить на список. в отличии от инструментов вы не ограничены ":", ";", "," хоть пробелы разница лишь в том что и выдаст он список, а не переменные со значениями
ой вот он

-
@allive Я понял, что можно делить по любому разделителю, но только по одному, а если в одном тексте у меня будет стоять разделитель строки <br/> а в другом </p>, или в одном тексте сразу встретятся 2 разных разделителя, то такой метод как я понимаю не подойдет, по этому может есть какой-то более универсальный метод как отображать текст не в строку, а в нормальном виде со всеми переносами строк. Вот я что-то подобное пытаюсь сделать, но что-то не могу понять почему так https://yadi.sk/i/iXM-sua9LrhC0g получается? Наверное руки не от туда)
-
@john_bradley Универсального нет. Или дерибанить как предложил @Fox или xpath или самому привести все к нему. Заменять, а потом делить. Ведь способ @ruzne это замена, это не удаление. Можете в конструкторе например установить где и что заменять, там есть такой функционал, не обязательно кодить. Причем замять можете не раз и не два и не один элемент, а что захотите. Но это да универсально нет.
Блин таки заставили меня расковырял я это не текст для баса. Вот так сделайте и вот

//*[@class="description"] Получайте не xml_list, а xpath_text_list -
Спасибо, что разъяснили. Жаль конечно что приходится мудрить и добавлять кучу действий казалось бы для такой элементарной задачи.
-
@john_bradley Для баса получать xml и получать text это разные действия. Он может получить текст из xml но только тот что имеет прямое отношение к тексту.
-
@john_bradley said in Переносы строк. Сжатие пробелов:
Спасибо, что разъяснили. Жаль конечно что приходится мудрить и добавлять кучу действий казалось бы для такой элементарной задачи.
html страница генерируется php скриптом (в основном), а его в свою очередь писал кодер, и для достижения своей цели, он тоже мог прибегнуть к разного рода костылям. Добавлять пробелы к тексту, чтобы выравнять его по элементу например. А когда получаешь этот текст из кода, то его придётся обрабатывать как необходимо.
@john_bradley said in Переносы строк. Сжатие пробелов:
если в одном тексте у меня будет стоять разделитель строки <br/> а в другом </p>
Если получать текст через xpath то оба этих тега выполнят только одну функцию - перенесут строку.
-
@fox said in Переносы строк. Сжатие пробелов:
Если получать текст через xpath то оба этих тега выполнят только одну функцию - перенесут строку.
Не совсем, бас будет все писать в одну строку, по крайней мере в моем примере это так https://yadi.sk/i/O6K-KjSrzFj-GQ Действие "Xpath получить текст" просто убирает теги в html, но не переносит текст если присутствуют теги переноса строки.
@allive said in Переносы строк. Сжатие пробелов:
Для баса получать xml и получать text это разные действия. Он может получить текст из xml но только тот что имеет прямое отношение к тексту.
В данном случае текст ссылки имеет отношение к тексту, например если указать действие xpath получить текст, он находит текст ссылки (в данном случае это "vk.cc/654646") https://yadi.sk/i/O6K-KjSrzFj-GQ потому-что это текст, а если применить получить xml и добавить к нему /text() то программа почему то считает, что это уже не текст, парадокс https://yadi.sk/i/iXM-sua9LrhC0g Вот я о чем.
-
@john_bradley said in Переносы строк. Сжатие пробелов:
он находит текст ссылки
Потому что так написано на странице, какая программа? При чем тут бас? Это правила xpath ну получите текст вашим в арубузе. Бас следует правилам xpath которые у него есть. Это сделано для вас упрощение, а вы зачем то требуя в условиях одно хотите получать другое. https://github.com/bablosoft/BAS/tree/master/Modules/Xpath/js
То что вы в арбузе добавляете как text() здесь реализовано просто разными действиями. Но иногда пейсатели сайтостроители тоже пишут одно а получаются другое. И потому бас умеет как и арбуз прощать ошибки кодерства. Но вот догадываться за вас он не обязан. Браузер тоже)
-
@allive Я говорю о bas, не грешу конечно на программу, просто интересно почему так получается. Получить каждый xml и добавит text() это практически то же самое что и получить текст xml, только на выходе получается массив текстовых строк, если вы говорите о правилах xpath. Тут я ошибок кодерства не заметил, есть xml:
<div id="3881504" class="description"> Вот первая строка. <br/><noindex><a href="https://vk.cc/654646/" class="link " target="_blank" rel="nofollow" title="https://vk.cc/654646">vk.cc/654646</a></noindex> вот сайт (вторая строка). <br/>Вот третья строка. <br/>Вот четвертая строка. <br/> </div>
в нем текст "vk.cc/654646", если получить каждую текстовую строку через "xpath получить кажый xml" таким xpath "//*[@class="description"]/text()" эта часть текста "vk.cc/654646" не отображается, если получать текст через "xpath получить текст" отображается, этот момент мне не ясен.
ХЗ почему так https://yadi.sk/i/Gk4FVosLhaqhFQ -
@john_bradley Я вам все ответил. ответ вашей задаче теперь внимательно смотрите на теги.
Вам даже арбуз подсказывает

