|
Чтение HTML - Запись HTML? | ☑ | ||
---|---|---|---|---|
0
abuca
03.04.16
✎
13:04
|
Столкнулся с такой ерундой.
Требования были отпарсить страницу, вытащить фото и описание. Вроде с задачей справился через DOM, но описание получаю как текст без форматирования Пример: УзлыТекст = ДокументDOM.ПолучитьЭлементПоИдентификатору("tab1-post"); Если НЕ УзлыТекст = Неопределено Тогда Для Каждого Узел1 Из УзлыТекст.ДочерниеУзлы Цикл Если Узел1.ИмяУзла = "table" Тогда Описание = Узел1.ТекстовоеСодержимое; КонецЕсли; КонецЦикла; КонецЕсли; Возвращает текст типа: "ПроизводительSamsungМодельLS20D300NH/CIДиагональ, дюймы19,5"Разрешение1366x768 (16:9)Тип подсветкиTFT TNТип ЖК-матрицыWLEDРазъемыVGA (D-Sub)Время отклика, мс5Контрастность600:1Яркость, cd/кв.м200Угол"..... Можно ли его получить не как Текст, а как HTML? Там все это выстраивается красиво в виде таблицы. Чтобы пихнуть в полеHTML и в доп описание товара. Как крайний вариант, подойдет, конечно, первичное тело HTML, которое я парсю на картинки. Но это, вроде как мовитон. |
|||
1
Записьдампа
03.04.16
✎
13:18
|
Гм. А что такое "мовитон"?
|
|||
2
abuca
03.04.16
✎
13:40
|
Существительное, неодушевлённое, мужской род, 2-е склонение
Корень: -моветон-. Произношение МФА: ед. ч. [m?v???t?o?n?], мн. ч. [m?v???t?o?n??] Семантические свойства Значение устар. или ирон. дурной тон; поведение, манеры и поступки, считающиеся неподобающими, неприличными, не принятые в данном обществе; плохой, дурно воспитанный Синонимы дурной тон Антонимы бонтон; комильфо Гиперонимы Гипонимы невоспитанность (c) Википедия |
|||
3
Записьдампа
03.04.16
✎
14:01
|
Дык там корень через "и", а ты про тут про ерунду какую-то
|
|||
4
abuca
03.04.16
✎
14:04
|
(3) Ой, простите, только теперь заметил свою безграмотность. Прямо глаз режет, как увидел!
Прошу считать "Мовитон"= "Моветон" |
|||
5
Записьдампа
03.04.16
✎
14:09
|
(4) =)
В общем, в данном случае получить вложенный текст с разметкой уже нельзя. Можно его или собрать заново вручную, продолжив парсинг вглубь Узел1, или пересоздать, записав всю иерархию во вспомогательную запись xml или html и получив строку, как результат записи. |
|||
6
abuca
03.04.16
✎
14:19
|
(5) Спасибо. Волей-неволей пришел к этому выводу, прежде чем просить помощи бывалых. Но, тем не менее, телоHTML есть как строка, осталось в ней найти тег
<div id="tab1-post" class="good-descript"> В нем ищу: <table></table> Все что между кидаю в полеHTML. |
|||
7
Юрий Лазаренко
03.04.16
✎
15:57
|
(0) Создай еще один ДокументDOM, выбери элемент основного документа DOM, содержимое которого тебе надо получить, скопируй его и помести копию в новый документ DOM. Затем получай исходный html-код нового документа DOM.
Там, правда, есть какие-то заморочки при копировании элементов DOM, но вроде они проявляются только при копировании внутри одного документа DOM, а когда вставляешь копию в другой документ, то все проходит гладко. |
|||
8
abuca
03.04.16
✎
16:26
|
(7)Спасибо, попробую. Реализовал, правда, уже через поиск тегов в текстеHTML. Еще одна заморочка была с Java скриптами, которые вызывали ошибки в ПолеHTML. Убрал блоками типа:
Строк = Текст.КоличествоСтрок(); ФлУд = Ложь; Для к = 0 По Строк Цикл Стр = Текст.ПолучитьСтроку(к); Если Найти(Стр,"a href=""javascript:")>0 Тогда ФлУд = Истина; КонецЕсли; Если ФлУд Тогда Текст.УдалитьСтроку(к); КонецЕсли; Если Найти(Стр,"</div>") Тогда ФлУд = Ложь; КонецЕсли; КонецЦикла; Работает достаточно шустро. |
|||
9
abuca
03.04.16
✎
16:27
|
ФлУд = ФлагУдаления сокращенно ))))
|
|||
10
abuca
03.04.16
✎
16:28
|
... собственно, это надо было удалять, ибо, ошибки выполнения скрипта.
<td colspan="2"> <p id="feedbacklink"><a href="javascript:show('feedback');hide('feedbacklink');" target="">Нашли ошибку в описании?</a></p> <div class="feedback" id="feedback" style="display:none"> <p><br/>Отправьте, пожалуйста, найденную ошибку нам, мы её обязательно исправим!<br/></p> <br clear="All"/> <form method="post"> <textarea name="lettText" style="width:500px;height:100px;"></textarea> <textarea name="lettText2" style="width:500px;height:100px;display:none;"></textarea> <br clear="All"/> <input id="send_gif" type="image" name="img_id" src="/img/send.gif" value="html" alt="Submit" onclick="hide(\'send_gif\'); this.form.submit();"> </form> <p><br/>Спасибо!</p> </div> |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |