Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2009, 10:58   #1
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию Загрузка html-страницы между определёнными тегами

Проблемка вот в чем: есть сайт, допустим www.***.ru, нужно загружать не полностью страницу, а только часть страницы между тегами <index> и соответственно </index> Как бы это сделать? Примного буду благодарен
Программа пишется на delphi
Вот примерный графический дизайн окна:

Локальный контент - это html-страница загруженная уже из готового кода, который хранится в папке с программой

Последний раз редактировалось medved6216; 10.11.2009 в 11:41.
medved6216 вне форума Ответить с цитированием
Старый 10.11.2009, 13:08   #2
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Ну как, если вы ее просто загружаете, то перед сохранением ищете подстроку <index> в тексте убираете все до нее, затем ищете подстроку
</index> убираете все после нее.

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

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 10.11.2009, 14:04   #3
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от ROD Посмотреть сообщение
Ну как, если вы ее просто загружаете, то перед сохранением ищете подстроку <index> в тексте убираете все до нее, затем ищете подстроку
</index> убираете все после нее.

Если вы это еще и смотреть хотите, то вам нужно тогда браузер делать, который перед отображением страницы сделает описанные выше действия, и покажет то, что осталось.
Это понятно что через браузер, нужно чтобы при каждой загрузке, он загружал только информацию между <index> и </index> как это всё организовать? Мне бы приблизительный код, если не сложно а дальше может и сам разберусь

Последний раз редактировалось medved6216; 10.11.2009 в 14:09.
medved6216 вне форума Ответить с цитированием
Старый 10.11.2009, 14:28   #4
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,714
По умолчанию

Цитата:
Программа пишется на delphi
что-то незаметно
Вы конкретную проблему опишите, возникшую в процессе программирования.
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 10.11.2009, 14:47   #5
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от mv28jam Посмотреть сообщение
что-то незаметно
Вы конкретную проблему опишите, возникшую в процессе программирования.
Создать браузер с ускоренной загрузкой для одного сайта. За счёт уменьшения кода, я рассчитываю увеличить загрузку страниц. Код выдераем с помощью Indy и помещаем его в memo1.text, мне нужно, чтобы при каждой загрузке Twebbrowser, выдерается код, производится поиск кода между тегами <index> </index> и загрузке этого кода в Twebbrowser, вот мне нужен способ поиска и хотябы копирования в memo2.text, далее можно сохранить memo2 в файл html и загрузить webbrowser1.navigate('1.html'), но это только часть программы всё остальное сделать куда гораздо легче Мне вот нужен код, чтобы вытаскивал html-код между тегами <index> и </index> и как организовать это при загрузке webbrowser1, а остальное я сделаю
medved6216 вне форума Ответить с цитированием
Старый 10.11.2009, 14:58   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 18,136
По умолчанию

Ну а как встречаются твои <index> </index>? В смысле только на строке или рядом с ними может быть еще какой-нибудь мусор?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 10.11.2009, 15:18   #7
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Ну а как встречаются твои <index> </index>? В смысле только на строке или рядом с ними может быть еще какой-нибудь мусор?
вот строка начала: <index><div id='dle-content'><!-- Публикации -->
Вот конец: <!-- Публикации --></div></index>
medved6216 вне форума Ответить с цитированием
Старый 10.11.2009, 15:48   #8
W0LF
Форумчанин
 
Аватар для W0LF
 
Регистрация: 28.03.2008
Сообщений: 940
По умолчанию

ставите компонент IdHTTP1

Код:
var
Source:string;
begin
 Source:=IdHTTP1.Get('www.***.ru');
 Delete(Source,1,Pos('<index>',Source)+6);
 Delete(Source,Pos('</index>',Source),Length(Source)-Pos('</index>',Source)-1);
Теперь Source имеет текст страницы после <index> и до </index>
Если теги <index> и </index> нужно сохранить, тогда так:

Код:
var
 Source:string;
begin
 Source:=IdHTTP1.Get('www.***.ru');
 Delete(Source,1,Pos('<index>',Source)-1);
 Delete(Source,Pos('</index>',Source)+8,Length(Source));

Последний раз редактировалось W0LF; 10.11.2009 в 15:51.
W0LF вне форума Ответить с цитированием
Старый 10.11.2009, 16:35   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если вам нужна частичная загрузка то нужно юзать Range
но нужно точно знать с какого символа начинается ваш index
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.11.2009, 09:14   #10
medved6216
Пользователь
 
Регистрация: 28.10.2009
Сообщений: 56
По умолчанию

Цитата:
Сообщение от W0LF Посмотреть сообщение
ставите компонент IdHTTP1

Код:
var
Source:string;
begin
 Source:=IdHTTP1.Get('www.***.ru');
 Delete(Source,1,Pos('<index>',Source)+6);
 Delete(Source,Pos('</index>',Source),Length(Source)-Pos('</index>',Source)-1);
Теперь Source имеет текст страницы после <index> и до </index>
Если теги <index> и </index> нужно сохранить, тогда так:

Код:
var
 Source:string;
begin
 Source:=IdHTTP1.Get('www.***.ru');
 Delete(Source,1,Pos('<index>',Source)-1);
 Delete(Source,Pos('</index>',Source)+8,Length(Source));
Спс сейчас попробую теги <index> не нужны, этими тегами обрабляют страницу для индексирования

Попробывал, он пишет Unknown Protocol

Последний раз редактировалось medved6216; 11.11.2009 в 09:27.
medved6216 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно вытащить их файлика текст между определёнными символами... Оптимист Общие вопросы Delphi 14 01.05.2009 18:18
Загрузка страницы из интернета Лубышев Работа с сетью в Delphi 9 10.03.2009 07:52
Копирование строки между тегами KiDoki Общие вопросы Delphi 7 30.12.2008 16:33
Разобраться с HTML Тегами. Yuran Работа с сетью в Delphi 3 16.07.2008 11:55