Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Html -> Txt (Как получить только текст страницы) 
V
    Опции темы
Alca
Дата 31.12.2006, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Html -> Txt (Как получить только текст страницы)


--------------------
PM WWW ICQ Skype Jabber   Вверх
megabist
Дата 31.12.2006, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Mart Slaaf
**


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

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



Тоесть текст без тегов или чего?
Если текст без тегов то я так понимаю нужна брать набор всех тегов и сравнивая с трафаретом удалять..


--------------------
Don't panic!

Жди, и Фатум тебя приведёт...
PM MAIL ICQ Skype GTalk   Вверх
Alca
Дата 31.12.2006, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Текст, который виден на странице


--------------------
PM WWW ICQ Skype Jabber   Вверх
megabist
Дата 31.12.2006, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Mart Slaaf
**


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

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



в невидимом режиме открываешь через cppbrowser и считываешь показываемое.... покопай там функции


--------------------
Don't panic!

Жди, и Фатум тебя приведёт...
PM MAIL ICQ Skype GTalk   Вверх
Alca
Дата 1.1.2007, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

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



Код

#include <mshtml.h>

void __fastcall TfrmMain::doConvertHtmlToText(TCppWebBrowser *pCppWebBrowser, AnsiString asHtmlFilePath, AnsiString asTxtFilePath) {
    //загружаем страницу в pCppWebBrowser
    wchar_t URL[MAX_PATH];
    asHtmlFilePath.WideChar(URL, MAX_PATH);
    pCppWebBrowser->Navigate(URL, 0, NULL, NULL, NULL);

    //ждём окончания загрузки
    while (pCppWebBrowser->ReadyState < ::READYSTATE_INTERACTIVE/*pCppWebBrowser->Busy*/) {
        Application->ProcessMessages();
    }

    //грабим текст
    IHTMLDocument2 *pHTMLDocument = NULL;
    IHTMLElement *pElem = NULL;
    wchar_t *pText;

    if (SUCCEEDED(pCppWebBrowser->Document->QueryInterface(IID_IHTMLDocument2, (LPVOID*)&pHTMLDocument))) {
        pHTMLDocument->get_body(&pElem);
        pElem->get_innerText(&pText);
    }
    
    pHTMLDocument->Release();
    pElem->Release();

    //пишем текст pText
    TStringList* pList = new TStringList;
    pList->Text = pText;
    pList->SaveToFile(asTxtFilePath);
    delete pList;
}


//конвертим
doConvertHtmlToText(CppWebBrowser1, "Test.html", "Test.txt"); 


Это сообщение отредактировал(а) Alca - 1.11.2007, 16:52


--------------------
PM WWW ICQ Skype Jabber   Вверх
Syrex
Дата 1.11.2007, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А как сохранить страницу в формате HTML ?
PM MAIL ICQ   Вверх
JackYF
Дата 1.11.2007, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(Syrex @  1.11.2007,  15:30 Найти цитируемый пост)
А как сохранить страницу в формате HTML ? 

очень фундаментальный вопрос. А в каком формате она изначально?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Syrex
Дата 1.11.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А где тогда в предоставленном коде страница перекодируется?!

Добавлено через 7 минут и 23 секунды
Все. Нащел.
Заменить

pElem->get_innerText(&pText);

на

pElem->get_innerHTML(&pText);
PM MAIL ICQ   Вверх
Cheater
Дата 3.11.2007, 02:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Код

String ScvStringTools::RemoveTag(String sourcestrhtml,String needtags)
{
char* s1;
char* s2;
unsigned int* addrcontrsum;
unsigned int contrsum[1000];
unsigned int addrneedtags[1000];
unsigned int es_,ds_,edi_,ecx_,ecx1,ecx2;
unsigned int esi1,esi2,edi1,edi3,L;
unsigned int koltags;
String tmp = CopyStr(sourcestrhtml);
s1=tmp.c_str();
s2=needtags.c_str();
ecx_=tmp.Length();
addrcontrsum=contrsum;
asm
{
mov es_,es;
mov ds_,ds;
mov es,ds_;
cmp ecx_,0;
jz @g;

cld;



mov esi,s2;
mov ecx,0;
@w1:mov ebx,1;
mov edx,0;
mov eax,0;
mov addrneedtags+ecx*4,esi;

@w:lodsb;
cmp al,';';
jz @n1;
cmp al,0;
jz @n2;
and al,11011111b;
mov ds:[esi-1],al;
mul bl;
add edx,eax;
inc ebx;
jmp @w;
@n1:mov contrsum+ecx*4,edx;
inc ecx;
jmp @w1;
@n2:mov contrsum+ecx*4,edx;
inc ecx;
mov koltags,ecx;



mov esi,s1;
mov edi,esi;
mov ecx,ecx_;
cld;
@1:mov al,'<';
@2:cmp al,ds:[esi];
jz @3;
movsb;
loop @2;
jmp @g;
@3:
mov edi1,edi;
mov esi1,esi;

inc esi;
cmp byte ptr ds:[esi], '/';
jnz @zt;
inc esi;
@zt:

mov edi,0;
mov ebx,1;
mov edx,0;
mov esi2,esi;
@w2:lodsb;
cmp al,' ';
jz @e1;
cmp al,'>';
jz @e1;
cmp al,0;
jz @e1;
inc edx;
and al,11011111b;
mov ds:[esi-1],al;
mul bl;
add edi,eax;
inc ebx;
jmp @w2;
@e1:mov ecx1,ecx;


mov ecx,koltags;
mov eax,edi;
mov edi,koltags;
shl edi,2;
add edi,addrcontrsum;
sub edi,4;
@p1:std;

repnz scasd;
jnz @no1;






mov ecx2,ecx;
mov edi3,edi;

mov esi,esi2;

mov edi,[addrneedtags+ecx*4];

mov ecx,edx;

cld;
repz cmpsb;
mov ecx,ecx2;
mov edi,edi3;


jnz @p1;
jz @v;


@no1:cld;
mov ecx,ecx1;
mov al,'>';
mov edi,esi1;
repnz scasb;
mov esi,edi;
sub edi,esi1;
inc ecx;
sub ecx_,edi;
mov edi,edi1;
jecxz @g;
dec ecx;
jnz @1;
jmp @g;
@v:mov ecx,ecx1;
mov edi,edi1;
mov esi,esi1;
movsb;

dec ecx;
jnz @1;




@g:mov es,es_;
};
tmp.SetLength(ecx_);
return tmp;
}


пользуемся: 
Код

RemoveTag("<html>123<br>123<hr>123","hr;br"); // вернёт "123<BR>123<HR>"
RemoveTag("<html>123<br>123<hr>123",""); // вернёт "123123"



PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

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


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

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


 




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


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

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