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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cсылки в utf-8 (win-1252) -> ANSI, Как преобразовать? 
:(
    Опции темы
sg729
Дата 5.6.2009, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Romikgy @  4.6.2009,  22:28 Найти цитируемый пост)
кса объясни на пальцах что выдает 
Цитата(sg729 @  3.6.2009,  20:15 Найти цитируемый пост)
DOM 

DOM выдает практически все smile - ссылки, картинки, скрипты, css, теги, текст внутри тега и снаружи и т.д.

Цитата(Romikgy @  4.6.2009,  22:28 Найти цитируемый пост)

а то это интерфейсы как я понял от броузера и что за набор методов нужен для парсинга? 

Да, это интерфейсы к mshtml.dll, описание можно глянуть в MSDN, а примеры есть в DRKB.

Цитата(Romikgy @  4.6.2009,  22:28 Найти цитируемый пост)
тогда сочетай (правильно) уже имеющееся

Похоже, что IEParser из пакета EmbeddedWB решает мой вопрос  smile 


PM MAIL   Вверх
Romikgy
Дата 6.6.2009, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(sg729 @  5.6.2009,  21:32 Найти цитируемый пост)
DOM выдает практически все smile - ссылки, картинки, скрипты, css, теги, текст внутри тега и снаружи и т.д.

это мизинец а я попросил на пальцах

Цитата(sg729 @  5.6.2009,  21:32 Найти цитируемый пост)
EmbeddedWB 

да забыл про него....


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sg729
Дата 7.6.2009, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Romikgy @  6.6.2009,  00:43 Найти цитируемый пост)
это мизинец а я попросил на пальцах


Цитирую "Delphi Russian Knowledge Base from Vit Version 3.0" (многие лета его создателям!) - раздел "Использование TWebBrowser" :
Цитата

Доступ к документной модели TWebBrowser
В Internet Explorer реализовано расширение HTML, под названием Dynamic HTML (DHTML). Эта модель представляет все элементы HTML-документа в виде набора коллекций объектов, доступных для изменения. Скрипты, встроенные в страницы и приложения, имеющие доступ к этим коллекциям могут находить и изменять их элементы, добавлять новые, причем изменения будут немедленно отражены в окне TWebBrowser. Иерархическое объектное представление HTML объектов называется DOM (Document Object Model) .
DOM в IE ActiveX доступна программисту в виде набора COM интерфейсов. Отправной точкой для доступа к ней служит свойство 

property Document: IDispatch;

Это свойство обеспечивает доступ к интерфейсу, IHtmlDocument2 позволяющему работать с содержимым документа. Для получения интерфейса необходимо запросить его при помощи оператора as

var
Document: IHtmlDocument2;
...

Document := WebBrowser.Document as IHtmlDocument2;

Документ в DOM представляет из себя набор коллекций элементов. Для доступа к коллекции служит интерфейс IHtmlElementCollection, а к элементу коллекции – IHtmlElement. Следующий пример выводит все тэги, имеющиеся в текущем документе и текст внутри тэгов.


Код

procedure TForm1.Button1Click(Sender: TObject);
var
  HtmlDocument: IHtmlDocument2;
  HtmlCollection: IHtmlElementCollection;
  HtmlElement: IHtmlElement;
  I: Integer;
begin
  Memo1.Lines.Clear;
  HtmlDocument := WebBrowser.Document as IHtmlDocument2;
  HtmlCollection := HtmlDocument.All;
  for I := 0 to HtmlCollection.Length - 1 do begin
    HtmlElement := HtmlCollection.Item(i, 0) as IHtmlElement;
    Memo1.Lines.Add(HtmlElement.TagName + ' ' + HtmlElement.InnerText);
  end;
end;


EmbeddedWB использует ту же документную модель, что и TWebBrowser, но можно обойтись интерфейсом IHtmlDocument2, если не хочется возиться с компонентами, вот посмотри этот пример : http://parsing-and-i.blogspot.com/2009/01/twebbrowser.html
DOM на русском описан здесь: http://program.rin.ru/razdel/html/1008.html 



PM MAIL   Вверх
Romikgy
Дата 8.6.2009, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

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



Цитата(sg729 @  7.6.2009,  21:55 Найти цитируемый пост)
Delphi Russian Knowledge Base from Vit Version 3.0" (многие лета его создателям!) - раздел "Использование TWebBrowser" :


Цитата(sg729 @  7.6.2009,  21:55 Найти цитируемый пост)
компонентами, вот посмотри этот пример : http://parsing-and-i.blogspot.com/2009/01/twebbrowser.html
DOM на русском описан здесь: http://program.rin.ru/razdel/html/1008.html 

благодарен 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
sg729
Дата 8.6.2009, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Romikgy @  8.6.2009,  00:13 Найти цитируемый пост)
благодарен 

 smile 
Забыл добавить - если потребуется объявлять интерфейсы IHtmlDocument2, IHtmlElementCollection, IHtmlElement и др. как глобальные - т.е. видимые в других модулях обязательно в обработчике формы onClose присваивай им nil. Иначе при завершении программы замучает "Access Violation" или "Runtime Error 216".
Удачи!  smile 
PM MAIL   Вверх
dvamaster
Дата 9.6.2009, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Уж не понимаю чего тут наворочено.

Никто не пробовал WideCharToMultiByte для получения Ansi, а потом перевести все в "строку с процентами"


--------------------
Хорошую информацию трудно добыть. Сделать с ней что-нибудь - еще труднее. /L. Skywalker/

Что же я сделал не так? /Король Лир/

Я делаю это для твоего же блага! /Любой родитель и палач/

PKUNZIP.ZIP /неизвестный/
PM MAIL WWW ICQ   Вверх
sg729
Дата 10.6.2009, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(dvamaster @  9.6.2009,  12:11 Найти цитируемый пост)
Уж не понимаю чего тут наворочено.
Никто не пробовал WideCharToMultiByte для получения Ansi, а потом перевести все в "строку с процентами" 

Я и сам удивляюсь отчего такие навороты  smile 
WideCharToMultiByte пробовал так как это рекомендуется в DRKB:
Код

function WideStringToString(const ws: WideString; codePage: Word): AnsiString;
var
  l: integer;
begin
  if ws = '' then
    Result := ''
  else
  begin
    l := WideCharToMultiByte(codePage,
    WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
    @ws[1], - 1, nil, 0, nil, nil);
    SetLength(Result, l - 1);
    if l > 1 then
      WideCharToMultiByte(codePage,
      WC_COMPOSITECHECK or WC_DISCARDNS or WC_SEPCHARS or WC_DEFAULTCHAR,
      @ws[1], - 1, @Result[1], l - 1, nil, nil);
  end;
end; { WideStringToString }

В результате получается:
Код

about:blank/yandsearch?text=?°???µ?»N?N?????&isize=wallpaper&rpt=image
 
 smile 

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

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

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

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

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

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


 




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


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

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