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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> TregExpr парсинг скачанных данных, Не получаетса получить данные 
:(
    Опции темы
Anakin
Дата 18.1.2012, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый День.
Если малюсенькая проблема мне нужно пропарсить страницу и вытащить определённый текст, но ничего не получается ((

Вот из данного типа текста который присутствует в тексте страницы
Код

<a href="details.php?id=1195533">Ночь одинокого филина [2012 / SATRip] [Comedy / Family]</a>


необходимо вытащить вот эти данные:
Ночь одинокого филина [2012 / SATRip] [Comedy / Family]

Вот пример кода:

Код

procedure TfrmMain.ToolButton4Click(Sender: TObject);
var
RegExp,RegExp2: TRegExpr;
Search:WideString;
begin
Search:=http.Get('http://www.sait.ru/browse.php');
RegExp := TRegExpr.Create;
RegExp2 := TRegExpr.Create;
RegExp.InputString :=Search;
try
RegExp.Expression := '<a href="details.php?id=(.*)';
if RegExp.Exec(Search) then
Begin
m_log.Clear;
repeat
m_log.Lines.Add(RegExp.Match[0])
until not RegExp.ExecNext
End
Else
m_log.Lines.Add('Not Found!');
finally
end;
RegExp.Free;

end;


Помогите кто знает.
Выше код не работает ничего не получается, в m_log выдает что ничего не найдено.
Пример кода нашел на форуме, не ругайтесь больно я тока начал разбираться с регулярками.

PM MAIL   Вверх
Данкинг
Дата 18.1.2012, 14:18 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

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



А зачем тут регулярки: просто с помощью POS и COPY почему нельзя сделать?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
Anakin
Дата 18.1.2012, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Данкинг @ 18.1.2012,  14:18)
А зачем тут регулярки: просто с помощью POS и COPY почему нельзя сделать?

Ну я тут почитал на форуме и погуглил, получается что с регулярками удобней, проще и надежней.
Да и циклы по поиску и добавлению проще сделать.
Искать то буду не одну строку там возможно будет 30+ строк

Как я понимаю в моём примере не правильно составлено регулярное выражение.
Я всё ещё пытаюсь составить правильное выражение но пока безрезультатно.

PM MAIL   Вверх
Qu1nt
Дата 18.1.2012, 15:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

<a href="details\.php\?id=\d+">(.*?)</a>


Это сообщение отредактировал(а) Qu1nt - 19.1.2012, 02:36
PM MAIL   Вверх
Anakin
Дата 19.1.2012, 00:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(Qu1nt @ 18.1.2012,  15:54)
Код

<a href="details\.php\?id=\d+">(.*)</a>

Спасибо друг за подсказку.
Но цикл всё ещё не находит никаких данных ((

Утром уже буду искать ошибку в цикле, может там ошибка.
Может кто сможет найти ошибку в цикле.
Заранее спасибо всем.
PM MAIL   Вверх
northener
Дата 19.1.2012, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

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



Цитата(Anakin @  18.1.2012,  14:27 Найти цитируемый пост)
Ну я тут почитал на форуме и погуглил, получается что с регулярками удобней, проще и надежней.

Но такую регулярку должен уже кто-нибудь сделать/написать.
Если таких пока нет, значит вы должны её написать!
Рекурсия, блин! smile


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Qu1nt
Дата 19.1.2012, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Delphi XE2.
Код

uses
  System.RegularExpressions;

procedure TForm1.Button1Click(Sender: TObject);
var
  Collection: TMatchCollection;
  Match: TMatch;
begin
  Collection := TRegEx.Matches(Memo1.Text, '<a href="details\.php\?id=\d+">(.*?)</a>');
  Memo1.Lines.BeginUpdate;
  Memo1.Clear;
  for Match in Collection do
    Memo1.Lines.Append(Match.Groups[1].Value);
  Memo1.Lines.EndUpdate;
end;

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.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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