|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.02.2012, 19:36 | #1 |
Форумчанин
Регистрация: 28.09.2010
Сообщений: 246
|
Парсинг ссылок сайта
Здравствуйте. Хочу получить из страницы сайта все ссылки на его новости (их 10 штук). Пишу такой код:
procedure TForm1.Button1Click(Sender: TObject); var a : String; begin while memo1.Lines.Count-1 < 10 do begin a := IdHTTP1.Get('http://адрес страницы сайта/'); Delete(a,1,pos('<h1> <a href="',a)+length('<h1> <a href="')-1); Delete(a,pos('</a> </h1>',a),length(a)); Memo1.Lines.Add(a); end; end; Ссылка выводится в МЕМО, только одна и та же ссылка 10 раз выводится. Как мне доделать, что бы были все 10 разных ссылок?
Смотреть фильмы HD Фильмы для планшетов
|
26.02.2012, 19:40 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вам надо не 10 раз получать страницу, а один раз получив её, парсить все ссылки на ней.
PS: лучше применять PosEx, а не Delete. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
26.02.2012, 20:47 | #3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Регулярные выражения, мм?
|
26.02.2012, 21:07 | #4 | |
Форумчанин
Регистрация: 28.09.2010
Сообщений: 246
|
Цитата:
procedure TForm1.Button1Click(Sender: TObject); var bg, en, n : Integer; res : String; begin text := IdHTTP1.Get('адрес сайта'); for n :=0 to 10 do begin bg:=pos('<h1> <a href="',text); en:=pos('</a> </h1>',text); res:=copy(text,bg,en-bg); memo1.Lines.Add(res); end; end; При таком коде вообще ничего не происходит. Хотя строки 10 раз добавляются.
Смотреть фильмы HD Фильмы для планшетов
|
|
26.02.2012, 21:41 | #5 |
Форумчанин
Регистрация: 28.09.2010
Сообщений: 246
|
Пробую делать даже вот так:
procedure TForm1.Button1Click(Sender: TObject); var startPos, endPos, n : Integer; MyText, text : string; begin Memo2.Lines.Text := IdHTTP1.Get('сайт'); MyText := Memo2.Lines.Text; for n :=0 to 10 do begin startPos := PosEx('<h1> <a href="', MyText); endPos := PosEx('</a> </h1>', MyText, startPos); text := Copy(MyText, startPos, endPos - startPos); Memo1.Lines.Add(text); end; end; Результата нет.
Смотреть фильмы HD Фильмы для планшетов
Последний раз редактировалось demiancz; 26.02.2012 в 21:47. |
26.02.2012, 22:46 | #6 |
Участник клуба Подтвердите свой е-майл
Регистрация: 26.01.2008
Сообщений: 1,897
|
Получаешь строку и через while или repeat пробегаешь по ней в поисках <h1> <a href=
Прикрепи файл (*.txt) с примерным содержимым страницы - попробую сделать |
26.02.2012, 22:57 | #7 | |
Форумчанин
Регистрация: 28.09.2010
Сообщений: 246
|
Цитата:
Вид типа: хттп://сайт/2011-04-18-18-23-46/2829--2010,Без возвращения (2010) Буду очень благодарен если поможете разобраться как реализовать такую возможность. Сразу скажу что этот сайт как пример. Мне важно понять принцип работы, а потом буду пробовать к другим сайтам подобрать код.
Смотреть фильмы HD Фильмы для планшетов
|
|
27.02.2012, 00:33 | #8 |
Форумчанин
Регистрация: 28.09.2010
Сообщений: 246
|
Вот написал такой код
procedure TForm1.Button1Click(Sender: TObject); var StartPos, endPos, n : Integer; MyText : string; begin MyText := IdHTTP1.Get('хттп://сайт/'); for n := 0 to 10 do begin startPos := PosEx('<td class="contentheading" width="100%">', MyText); endPos := PosEx('class="contentpagetitle">', MyText, startPos); text := Copy(MyText, startPos, endPos - startPos); Memo1.Lines.Add(text); end; end; Но он как и код в первом посте 10 раз выводит одну и туже ссылку. А мне надо 10 разных.
Смотреть фильмы HD Фильмы для планшетов
|
27.02.2012, 00:38 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Код:
ТС, не игнорируйте тэг кода ! Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
27.02.2012, 01:00 | #10 |
Форумчанин
Регистрация: 28.09.2010
Сообщений: 246
|
Спасибо. То что надо.
Смотреть фильмы HD Фильмы для планшетов
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
preg_match? парсинг и вывод списка ссылок? | taurii | PHP | 1 | 07.02.2012 16:16 |
Парсинг ссылок | cashmail | PHP | 1 | 01.07.2011 16:39 |
парсинг сайта | CodeNOT | PHP | 1 | 21.03.2011 09:48 |
Парсинг сайта | AnToHa-KiLL | Общие вопросы Delphi | 3 | 30.06.2009 08:22 |
парсер (сбор ссылок с сайта) | AlexMenco | Фриланс | 9 | 24.02.2009 19:39 |