![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Имеется сайт, например http://siteru. На страничке index.php имеется список вида:
12312 45465 78787 В коде страницы все это находится между тегами <li> <li/> Вот так: <ul class="icqList"> <li>12312</li> <li>45465</li> <li>78787</li> Как выдрать эту информацию с сайта и отпарсить, чтобы На выходе был список вида: 12312 45465 78787 и т.п Я новичек, прошу помощи, возможно нужен цикл while. Исплоьозовать IDhttp? как записать это в переменную? |
#2
|
|||
|
|||
![]() можно получить текст страницы через IdHTTP.Get.
Далее можно делать 2мя способами. 1. Использовать MSHTML - загрузить туда текст и далее искать по объектной можели. 2. попробовать написать свой простой парсер. Код:
S := IdHTTP.Get('www.site.ru'); // не уверен в синтаксисе - проверь. // вырезаем список <li>...</li> S := Copy(S,Pos('<ul class="icqList">,S) + Length('<ul class="icqList">'), Length(S)); S := Copy(S,1,Pos('</ul>',S)-1); // Разбор номеров Idx := Pos('<li>',S); While Idx > 0 Do Begin // Здесь должно быть содержимое элемента списка Buf := Copy(S,Idx+4,Pos('</li>',S)-4-1); // Удаляем обработанный кусок S := Copy(S,Pos('</li>',S)+5,Length(S)); Idx := Pos('<li>',S); End; может быть придется подкоректировать смещения при вычислении координат копирования - делал на глазок. |
#3
|
||||
|
||||
![]() а не проще ли использовать регулярные выражения??))) это ж очень удобней будет... и быстрей... и не надо даже вычислять все эти отступы, ведь на выходе с точностью 100% мы будем получать готовый список чисел)
|
#4
|
|||
|
|||
![]() А по-подробнее? Спасибо!
|
#5
|
|||
|
|||
![]() А по-подробнее? Спасибо!
|