Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Удаление тегов из ХТМЛ-страницы, Удаление тегов из ХТМЛ-страницы 
:(
    Опции темы
Pcrepair
Дата 18.1.2012, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



Добрый день
есть код:
Код


var
  Form1: TForm1;
  HTML : ustring;
//////////////////////////////////
procedure TForm1.Button1Click(Sender: TObject);
var
URL : string;
begin
     URL := Edit1.Text;
     Chromium1.Browser.MainFrame.LoadUrl(URL);
end;
procedure TForm1.Chromium1LoadEnd(Sender: TObject; const browser: ICefBrowser;
  const frame: ICefFrame; httpStatusCode: Integer; out Result: Boolean);
begin
  if (httpStatusCode <> 200) then Exit;
  Memo1.Clear;
  Chromium1.Browser.MainFrame.VisitDomProc(
  procedure(const Dom: ICefDomDocument)
  begin
    HTML := Dom.Document.AsMarkup;
  end );
  Memo1.Clear;
  Memo1.Lines.Add(HTML);
end;
end.


Код закачивает страницу с заданным УРЛ, производит обработку скриптов и размещает код страницы в ПЕРЕМ типа ustring
Все работает.
Далее необходимо переработать код в ПЕРЕМ ХТМЛ. В частности нужно удалить все теги типа <script..мусор...>..мусор...</script>, <style type=..мусор>...мусор...</style> и прочие такие же, типа (<b> </b>), не содержащие информации. в общем нужно радикально зачистить страницу, оставив только теги ссылок <a href= " ">...........</a> и теги таблиц <TR></TR>, чтоб ни рекламы. ни флеша, ни картинок
ВОПРОС: 
каким способом это лучше сделать? может есть каки то проверенные способы уже
может есть какие то модули типа TParser? или типа того
Всем ответившим по делу - спасибо
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
14SatanA88
Дата 19.1.2012, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 2
Всего: 5



PM MAIL ICQ   Вверх
Akella
Дата 19.1.2012, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



PM MAIL   Вверх
Pcrepair
Дата 19.1.2012, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



есть теория что использование pos/regexp может привести к непредсказуемым результатам, при обработке самых разных страниц (это будет поисковая программа)
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
Данкинг
Дата 19.1.2012, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Цитата(Pcrepair @  19.1.2012,  21:31 Найти цитируемый пост)
pos/regexp

Если не pos и не регулярки, тогда каким образом ещё можно парсить строку?!


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Akella
Дата 19.1.2012, 21:18 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



Святым Духом  smile 
PM MAIL   Вверх
14SatanA88
Дата 20.1.2012, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 393
Регистрация: 13.5.2010

Репутация: 2
Всего: 5



Pcrepair, 
Цитата(Pcrepair @  19.1.2012,  20:31 Найти цитируемый пост)
при обработке самых разных страниц

не думаю, что для такого есть универсальное решение

добавьте конкретики, проясните ситуацию.
PM MAIL ICQ   Вверх
Alexeis
Дата 20.1.2012, 09:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Цитата(Данкинг @  19.1.2012,  21:53 Найти цитируемый пост)
Если не pos и не регулярки, тогда каким образом ещё можно парсить строку?!


  Веб браузер выдает DOM отнюдь не в режиме ReadOnly.

Это  к тому что можно редактировать и без того чтобы что-то парсить. Вот например я удаляю тег html и все что внутри него.

Код

  HTMLWindow := Doc.parentWindow;
  Doc := WebBrowser1.Document as IHTMLDocument2;
  cl  := Doc.all;
  el2 := cl.item(1, 0) as IHTMLDOMNode;
  el2.removeNode(true);


P.S. код для TWebBrowser, но думаю для хрома есть что-то аналогичное.



--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Pcrepair
Дата 20.1.2012, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 16.1.2011

Репутация: нет
Всего: нет



14SatanA88, Alexeis интересная информация, буду думать
с другой стороны речь идет об удалении ненужного.
например:
если написать циклический код, просматривающий все символы в ПЕРЕМ (код хтмл-страницы) и удаляющий конструкции типа <б>то что между тегами не удаляется, это нужно, удаляются сами теги, как не несущие информации</б> или  <script..мусор...> вот тут все удаляется, ЖАБА код уже не нужен</script>
вроде проблем быть не должно? при обработке самых разных страниц. какой вариант предпочтительнее (pos или regexp) по критериям:
1. возможной глючности
2. скорости обработки (средняя страница 200 кб, ну 10 000 символов?)
3. сложности написания кода (regexp надо устанавливать в РАД, а pos это ведь "Работы со строками"?)
--------------------
Сборник рабочего кода Процедур и Функций DelPhi     http://validcoderepo.narod.ru/
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0925 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.