Взять только текст со страницы.

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
Можно ли?
Экшен "Взять Текст" - тащит мусор, то что между <scripts> </script>
"Артикле Экстракшен" - кусок сверху только выгрызает.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
{-Page.Text-}
 

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
Эх, рано я обрадовался...
так там ведь тотже мусор в виде кода скриптов
типа

//<![CDATA[
jQuery.noConflict();

jQuery('ul.nav').superfish({

И этого побольше чем текста будет.
пропустили <scripts> </script>?
 

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
Пардон, заодно спрошу, - у меня регулярно пропадает Дебугерское окно с переменными (неудобное кстати).
И как его выковырять - непонятно - лечится только переустановкой. по F2 - только список, без значение.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Удалить все тэги можно такой регуляркой:

<.*?>

Заменить ее на пустоту через операции с текстом.

2) Попробуйте удалить
c:\Users\[Username]\AppData\Roaming\ZennoLab\ZennoPoster\4\ProjectMak er\ProjectEditor\EditorLayout.xml
c:\Users\[Username]\AppData\Roaming\ZennoLab\ZennoPoster\4\ProjectMak er\ProjectEditor\ToolBoxLayout.xml

и перезагрузить PM
 

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
Так в том то и дело, не все в коде прикрыто <>
при очистке пропустили <scripts> </script>
их самих забрали, и ж
а там уже незакавычено.
возьмите вот хоть это _http://design-milk.com/the-butler-organizer-by-curtis-micklish/
попробуйте плиз

там есть правда, что попарсить, но удалиться не всё
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Ну вот так можно заменить:

<scripts>.*?</script>

на пустоту.
Если что-то остается, смотрите что еще очередной регуляркой сможете почистить.
 
  • Спасибо
Реакции: Lollipop

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
Спасибо за оперативность,
но кой-чё остается...
дело в том, что Zenno при чистке исходного кода страницы забирает только сами теги "<scripts>" "</script>"(их нет уже), а всё что внутри остается.
это не совсем правильно.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Вариант из моего прошлого поста как раз вырезает и тэги и то что между ними.
 

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
ох.
нету. совсем нету "<scripts>" "</script>"
нечего вырезать.
остатся в {-Page.Text-} - текст и кучки мусора в разных местах, которые раньше был между "<scripts>" "</script>"
и <scripts>.*?</script> некчему применять, если только к прошлой жизни :-)

мне так кажется.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Вот так наверн точнее

<script>[\w\W]*?</script>
 

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
Да, конечно, Вы правы, если на странице были бы 'script', то так лучше.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Что-нить типа такого

<\w*?>[\w\W]*?</.*?>
 
  • Спасибо
Реакции: Lollipop

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
То, что надо, спасибо.

А не лучше поправить сам код экшена "Взять Текст"? Экшен ведь предполагает на выходе чистый текст.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Если вы про "выделение основной статьи", то там отсекаются не столько html элементы со своими аттрибутами, сколько комментарии, навигация по мере возможности и так далее.
Чтобы подвергать анализу максимально приближенный к основсному тексту кусок.
 

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
ну "выделение основной статьи", это на любителя, а вот если уж текст, так текст -
Табы->Данные->Взять Текст. по сути это {-Page.Text-} и он работает кривовато.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
и правда много мусора берется на примере вашей ссылки.
посмотрим.
 

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
посмотрите пожалуйста.
мусора там не просто много, его там больше чем текста, (сейчас много смотрю)
при удаленных <script> вычистить его практически невозможно, ибо он слишком многообразен
 

Lollipop

Client
Регистрация
06.09.2012
Сообщения
271
Благодарностей
27
Баллы
28
rostonix, а есть надежда, что это в ближайшем билде пофиксят?
имхо там просто помарка в коде.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Не могу сказать точно :-)
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 982
Благодарностей
817
Баллы
113
Удалить все тэги можно такой регуляркой:
<.*?>
Заменить ее на пустоту через операции с текстом.
А если использовать не Regex, а Text, как это выражение может выглядеть? Я пытался указывать <*> - не работает
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
text ищет по точному совпадению.
соответственно <*> найдет только <*>
 

Nick

Client
Регистрация
22.07.2014
Сообщения
1 982
Благодарностей
817
Баллы
113
жаль, чо :( хотел бы такое предложение внести)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
для этого есть вторая опция: Regex )
 

Trader1985

Client
Регистрация
14.12.2011
Сообщения
131
Благодарностей
31
Баллы
28
Подскажите, пожалуйста, как спарсить не весь, а только определённый фрагмент текста на странице?
Сейчас делаю так:
1) Экшеном "Данные" беру (DOM) с помощью регулярки нужный мне фрагмент текста;
2) Далее, удаляю HTML теги через экшен "обработка текста" – замена на пустоту регуляркой <.*?>

Этот способ работает, но текст получается слипшейся, так как теги переноса на новую строку – <br /> удаляются тоже.
Как лучше парсить текст, чтобы его читабельность оставалась нормальной?
 
Последнее редактирование:

Nick

Client
Регистрация
22.07.2014
Сообщения
1 982
Благодарностей
817
Баллы
113
сделай пункт 1.5), в котором <br/> заменяй на {-String.Enter-}
 

Trader1985

Client
Регистрация
14.12.2011
Сообщения
131
Благодарностей
31
Баллы
28
Ага, спасибо, только хотел отписаться, что нашёл решение, но вы меня опередили! ))
Кстати, там ещё надо добавить удаление пустых строк регуляркой \n\r – иначе пустые строки получаются, а на сайте доноре просто перенос текста на новую строку – без пустоты.
Короче, какие-то танцы с бубном... )) Всё равно немного не так, как в источнике.
 
Последнее редактирование:

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