Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Как купить рекламу на форуме


Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2009, 17:38   #1
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
Сообщение Как получить текст HTML Документа из TWebBrowser без тегов

Всем доброго времени суток.

Я хочу получить исходник страницы без тегов, для этого воспользовался вот такой процедурой, выдает ошибку на выделенном слове.

Код:
var
  Document: IHTMLDocument2;
begin
 Document := WebBrowser1.Document as IHtmlDocument2;
 if Document <>  nil then
   Memo1.Text := (Document.all.Item(NULL, 0) as IHTMLElement).OuterHTML;

Выяснил что такое Null и понял что нужно его тоже в var добавить:

Код:
var
  Null: Variant;
Теперь ошибку не выдает, но и толку от этой процедуры тоже нету, потому что исходник выдает с тегами, хотя эта статья на многих сайтах выложена, тогда в чём же дело? Или эта статья фуфло полнейшее, или я уже не знаю в чем дело. Помогите раобраться.

Нашол ещё один вариант решения изложенной проблемы:

Код:
uses mshtml, activex;

procedure GetHtmlCode(WebBrowser: TWebBrowser; FileName: string);
var
 htmlDoc: IHtmlDocument2;
 PersistFile: IPersistFile;
begin
 htmlDoc := WebBrowser.document as IHtmlDocument2;
 PersistFile := HTMLDoc as IPersistFile;
 PersistFile.save(StringToOleStr(FileName), true);
end;
Но увидев слово Save, понял что он мне явно не подходит, зато вместо Save можно написать Load, но тогда я не знаю какие парметры нужно указывать. В идеале хочу загружать исходник страницы в мемо.

Жду ваших советов, заранее спасибо.
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 26.11.2009, 18:05   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
исходник страницы без тегов
Что это будет? Текстовая каша?
Допустим, вы уберете все <...> и что?
Или вы имеете в виду, убрать все между <head> и </head> и так далее?
А критерии какие?
mihali4 вне форума Ответить с цитированием
Старый 26.11.2009, 18:48   #3
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

mihali4, я в этих тегах если често ваще не шарю, я надеялся что получить исходник HTML и получить исходник HTML без тегов - это не одно и тоже. А на практике получается что одно и тоже.

К примеру я надеялся, что вместо <title>Яндекс</title> будет просто Яндекс. Строго не судите, если полную ерунду несу, потому что уже сказал, что в этом деле не шарю
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 26.11.2009, 19:00   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Кроме <title> там ещё куча скрытой информации. Как вариант - сохранять в html файл, а потом его простым браузером.
TwiX вне форума Ответить с цитированием
Старый 26.11.2009, 19:14   #5
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

TwiX, такой вариант не катит, мне нужно в своём браузере открывать.А на счёт скрытой информации, не знаю что вы имели в виду, но пока выдаёт примерно такой исходник:

Код:
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<title>
программирование&nbsp;-
Яндекс:
нашлось 46*млн страниц
</title>
<link rel="shortcut icon" href="http://img.yandex.net/i/favicon.ico">
<script type="text/javascript">
var TT = {
query: "программирование",
reqid: "1259251755-11012298465",
cltr: "1",
reg: "225",
btt: "165",
dsuf: "ru",
rtext: "",
rtime: "",
zen: false,
lsug: true,
usug: false
}
document.domain = (TT.dsuf == 'ua') ? 'yandex.ua' : (TT.dsuf == 'kz') ? 'yandex.kz' : 'yandex.ru'; 
</script>
<script type="text/javascript" src="//js.static.yandex.net/jquery/1.3.2/_jquery.js"></script>
<script type="text/javascript" src="//lego.static.yandex.net/2.0/common/js/_common-no-frame-check.js"></script>
<script type="text/javascript">Lego.init({login:"",locale:"ru",id:"search"})</script>
<!--[if gt IE 7]><!-->
<link rel="stylesheet" href="http://css.yandex.net/css/search/r20/_serp.css"/>
<!--<![endif]-->
<!--[if IE 7]>
<link rel="stylesheet" href="http://css.yandex.net/css/search/r20/_serp.ie7.css"/>
<![endif]-->
<!--[if IE 6]>
<link rel="stylesheet" href="http://css.yandex.net/css/search/r20/_serp.ie6.css"/>
<![endif]-->
<script type="text/javascript" src="http://css.yandex.net/css/search/r20/_serp.js"></script>
<link rel="search" href="opensearch.xml" title="Яндекс" type="application/opensearchdescription+xml">
</head>
<body>
<div class="b-mobile-bar">
<a href="http://m.yandex.ru/search?query=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC
</div>
<table class="l-head" id="l-head">
<tr>
<td class="l-head-g"><i style="background
<td class="l-head-l">
<div class="b-head-logo">
<div class="logo"><a href="ht
<strong class="text">
Нашлось<br/>46*млн страниц
</strong>
</div>
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 26.11.2009, 20:06   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Никогда не работал с WebBrowser'ом. Вот первое, что приходит на ум:
Код:
procedure TForm1.FormClick(Sender: TObject);
var
  html:TFileStream;
begin
  html:=TFileStream.Create('tst.html',fmCreate);
  IdHTTP1.Get('http://www.google.ru', html);
  html.Free;
  WebBrowser1.Navigate(ExtractFilePath(paramstr(0))+'tst.html');
end;
Т.е. тупо грузим страничку в браузер из файла
TwiX вне форума Ответить с цитированием
Старый 26.11.2009, 21:38   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Темы внизу - в "Похожих темах" смотрели?
Если не поможет - поиск по форуму со словом "парсинг".
mihali4 вне форума Ответить с цитированием
Старый 26.11.2009, 22:34   #8
Marsel737
Форумчанин
 
Аватар для Marsel737
 
Регистрация: 09.11.2009
Сообщений: 669
По умолчанию

TwiX, во первых мне нужно в мемо текст получать, во вторых почему то ругается на html.Free; выдает ошибку во время выполнения проги
Я не всегда знаю, о чем говорю, но знаю, что прав. © Мухаммед Али.
К чёрту обстоятельства. Я создаю возможности. © Брюс Ли
Marsel737 вне форума Ответить с цитированием
Старый 26.11.2009, 23:08   #9
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

"Чистый" текст в мемо без парсинга никак. Да и зачем... С html у меня всё нормально.
TwiX вне форума Ответить с цитированием
Старый 27.11.2009, 20:23   #10
Css
Пользователь
 
Аватар для Css
 
Регистрация: 19.11.2009
Сообщений: 13
По умолчанию

Текст HTML документа в Memo
Долой готовые компоненты! Учите «Win32API»!
Css вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме 20000 рублей в месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как отобразить на форме содержимое HTML-документа? Alexpol Общие вопросы Delphi 13 09.01.2011 22:39
Как в WORDPRESS запретить постинг без указания заголовка и тегов? Рыжая_Бестия WordPress и другие CMS 2 11.09.2009 14:44
Текст HTML документа в Memo Delpinist Компоненты Delphi 9 09.09.2009 12:19
Сохранение документа из TWebBrowser(без нарушения работы страницы) Пепел Феникса Работа с сетью в Delphi 2 13.03.2009 21:59
как качнуть из тегов текст в memo Лёка Работа с сетью в Delphi 4 03.02.2008 19:46


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS