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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с парсингом html 
:(
    Опции темы
ASGDeveloper
Дата 13.5.2006, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


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

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



Возникла проблема. Нужно из html-файла получить пути загружаемых картинок и проверить, являются ли они ссылками.
Пути к картинкам я успешно получаю, но вот проверить, являются ли они ссылками - не получается.
Я уже испробовал 4 или 5 разных парсеров, но не один не может выполнить моей задачи.

Вопрос, можно решить данную проблему? 
PM MAIL   Вверх
Nickel
Дата 13.5.2006, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ищи тег <a , потом ищи <img  или </a> если сначала встретится первое, то картинка - ссылка, если второе, то нет. 
PM   Вверх
ASGDeveloper
Дата 13.5.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


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

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



Цитата(Nickel @  13.5.2006,  11:59 Найти цитируемый пост)
Ищи тег <a , потом ищи <img  или </a> если сначала встретится первое, то картинка - ссылка, если второе, то нет. 

хм, я что-то не понял. Можешь привести пример?
Например есть:

<a href=download/file.zip title="Download Free Software"><img src=images/download.gif align=right width=141 height=34 border=0 alt="Download Free"></a>

и еще

<img src=images/box.gif width=150 height=182 alt="Software BOX" title="Software BOX"> 
PM MAIL   Вверх
Nickel
Дата 13.5.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Вот как-то так...Конечно не совсем надёжно, но целый парсер я для тебя псиать не буду. Поищи могут быть ошибки. Смысл данного кода: ищем '<a ' и '</a' .
Код

uses strutils;

...

var s: string;
    apos, imgpos, a: integer;
begin
  s:='<a href=download/file.zip title="Download Free Software"><img src=images/download.gif align=right width=141 height=34 border=0 alt="Download Free"></a>';
  s:=s+'<img src=images/box.gif width=150 height=182 alt="Software BOX" title="Software BOX">';
  apos:=0;
  a:=0;
  imgpos:=pos('<img ',s);
  apos:=pos('a',s);
  while imgpos>0 do
    begin
      while (apos<imgpos) and (apos>0) do
        begin
          if s[apos-2]+s[apos-1]='</' then a:=a-1;
          if a<0 then a:=0;
          if (s[apos-1]='<') and (s[apos+1]=' ') then a:=a+1;
          apos:=posex('a',s,apos+1);
        end;
      if a>0 then showmessage('Êàðòèíêà, êîòîðàÿ íà÷èíàåòñÿ ñ '+inttostr(imgpos)+' ñèìâîëà - ññûëêà')
      else showmessage('Êàðòèíêà, êîòîðàÿ íà÷èíàåòñÿ ñ '+inttostr(imgpos)+' ñèìâîëà - íå ññûëêà');
      a:=0;
      apos:=posex('a',s,imgpos+1);
      imgpos:=posex('<img ',s,imgpos+1);
    end;
end;
 
PM   Вверх
Poseidon
Дата 13.5.2006, 23:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

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



Цитата(ASGDeveloper @  13.5.2006,  12:29 Найти цитируемый пост)
<a href=download/file.zip title="Download Free Software"><img src=images/download.gif align=right width=141 height=34 border=0 alt="Download Free"></a>
 Это ссылка, т.к. присетствует <a ...> ...  </a>

Цитата(ASGDeveloper @  13.5.2006,  12:29 Найти цитируемый пост)
<img src=images/box.gif width=150 height=182 alt="Software BOX" title="Software BOX"> 
 Это просто картинка.
 


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
ASGDeveloper
Дата 14.5.2006, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


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

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



Цитата(Nickel @  13.5.2006,  14:14 Найти цитируемый пост)
Вот как-то так...Конечно не совсем надёжно, но целый парсер я для тебя псиать не буду.

Только плз, напиши, что значят эти: Êàðòèíêà, êîòîðàÿ íà÷èíàåòñÿ ñ  
PM MAIL   Вверх
Nickel
Дата 14.5.2006, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ну не знал как сформулировать... Вобщем это номер символа '<' после которого идёт img 
PM   Вверх
ASGDeveloper
Дата 14.5.2006, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


developer
**


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

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



Цитата(Nickel @  14.5.2006,  17:33 Найти цитируемый пост)
Ну не знал как сформулировать... Вобщем это номер символа '<' после которого идёт img 

Ладно, все, спасибо! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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