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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2011, 22:56   #1
record222
Форумчанин
 
Регистрация: 23.09.2009
Сообщений: 127
По умолчанию Парсинг страници

Доброе время суток друзья!
Есть такого рода HTML страница
Код HTML:
<td class="normal" valign="top"><a onclick="javascript: this.style.textDecoration='line-through';" a="" href="view.php?ad=6605013" title="http://forex4you.org/?affid=ea76cd1" target="_blank">

Миллионы людей уже торгуют на Forex</a>
<br>
<span class="desctext">Стань успешным и финансово независимым</span><br>


<div id="id_6605013" style="border-left: 1px solid rgb(0, 151, 46); margin-left: 0px; padding-left: 5px; border-top: 1px solid rgb(0, 151, 46); margin-top: 5px; padding-top: 5px; display: none;">
<span class="desctext">Сайт: <a href="http://forex4you.org/?affid=ea76cd1" target="_blank">http://forex4you.org/?affid=ea76cd1</a><br>
Таймер: <b>25</b> секунд<br>
Заказано: 500000 шт. Пользователи: 18547. Гости: 188. Осталось: 481453 шт.<br>

Жалоб: <b>0</b></span></div>

</td>

<td class="normal" align="right" nowrap="nowrap" valign="top" width="67">
0.024 руб<br>

<a class="workvir" href="http://online.us.drweb.com/result/?url=http://forex4you.org/?affid=ea76cd1" title="Проверить ссылку на вирусы" target="_blank"></a>
<a class="workquest" href="#" onclick="return js_echo('id_6605013');" title="Подробная информация"></a>
<span class="vip"><b>vip</b></span></td>

</tr></tbody></table></div>

<div>
<table class="work-serf" border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr>

<td class="normal" valign="top" width="18">
<img src="images/ico16/goserf.png" title="Обычный просмотр" height="16" width="16"><br><a href="abuse.php?ad=6974305" target="_blank"><img src="images/ico16/protect_green.png" title="Подать жалобу на ссылку" border="0" height="16" width="16"></a></td>

<td class="normal" valign="top"><a onclick="javascript: this.style.textDecoration='line-through';" a="" href="view.php?ad=6974305" title="http://www.seosprint.net/?ref=1410" target="_blank">
Настоящее открытие 2011 года</a>
<br>
<span class="desctext">Лидер в сфере заработка и рекламы</span><br>


<div id="id_6974305" style="border-left: 1px solid rgb(0, 151, 46); margin-left: 0px; padding-left: 5px; border-top: 1px solid rgb(0, 151, 46); margin-top: 5px; padding-top: 5px; display: none;">
<span class="desctext">Сайт: <a href="http://www.seosprint.net/?ref=1410" target="_blank">http://www.seosprint.net/?ref=1410</a><br>
Таймер: <b>20</b> секунд<br>
Заказано: 100000 шт. Пользователи: 1730. Гости: 19. Осталось: 98270 шт.<br>
Жалоб: <b>0</b></span></div>
И мне нужно спарсить все ссылки вида
view.php?ad=......, где "......" уникальный номер.

Я делал с помощью функции delete.
Но также хотел бы у Вас узнать.
Как мне удалить все символы например до определенного места, а именно до view.php?ad=......?

Друзья посоветовали парсить с помощью цикла While.
Посмотрев в интернете данную функцию. Я не понимаю как это реализовать.
Помогите пожалуйста.
Заранее спасибо!

Последний раз редактировалось record222; 29.07.2011 в 22:58.
record222 вне форума Ответить с цитированием
Старый 30.07.2011, 00:00   #2
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Код:
uses
  StrUtils;

procedure Parse;
var
  s: string; // тут ваш текст
  i: Integer;
  sl: TStringList;
begin
  sl := TStringList.Create;

  i := 1;
  while PosEx('view.php?ad=', s, i) <> 0 do
  begin
    i := PosEx('view.php?ad=', s, i) + 12;
    sl.Add(Copy(s, i, PosEx('"', s, i) - i));
  end;
end;
kangreon вне форума Ответить с цитированием
Старый 30.07.2011, 20:34   #3
bulldog5293
Форумчанин
 
Регистрация: 13.05.2010
Сообщений: 670
По умолчанию

Фишку просёк, если не понял пиши в личку, но код норм, т.к. по мимо view.php?ad=
нужны ещё данные с сайта получить
Код:
var
str: AnsiString;
cis2: TStringList;
BPos, EPos: integer;
begin
   If Pos('view.php?ad=', str) > 0 then
        begin
          while Pos('view.php?ad=', str) > 0 do
          begin
            Delete(str, 1, Pos('view.php?ad=', str) + 11);
            BPos := PosEx('"', str);
            EPos := Pos('" target="_blank"', str);
            begin
              CIS.Append('view.php?ad='+System.Copy(str, 1, BPos - 1));
              System.Delete(str, 1, EPos + 17);
              EPos := Pos('</a>', str);
              CIS.Append(System.Copy(str, 1, EPos - 1));
            end;
            Delete(str, 1, EPos + 3);
          end;
        end;
        end;
bulldog5293 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построение страници div + css cyclobe HTML и CSS 14 12.01.2011 18:35
Открытие HTML страници demiancz Помощь студентам 2 25.11.2010 17:53
Получить исходн. код страници Lemo PHP 2 12.08.2010 00:22
Все страници одинаковые Immoworld Microsoft Office Word 9 10.03.2010 14:45