Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Парсинг HTML в Delphi (https://forum.antichat.xyz/showthread.php?t=29976)

a1nt 26.12.2006 20:59

Парсинг HTML в Delphi
 
В TStrings находится документ HTML.
В нем присутствует такое

Код HTML:

<td class="name"><a href="http://ссылка.ру">Какято лажа написана</a><small>Тут еще фигня, теги</small></td>
Оно повторяется много раз, причем может быть, что в одной строке несколько. Мне нужно из этой конструкции вытащить ссылки (http://ссылка.ру).
Запихнуть надо их в TStrings.
Как это можно реализовать попроще,
помогите, пжлст)

nc.STRIEM 26.12.2006 21:01

Цитата:

Как это можно реализовать попроще,
помогите, пжлст)
проще всего это пишеться на Php !
так че думай.... есле че могу помочь на php сделать!
делфи я не знаю.

a1nt 26.12.2006 21:07

Цитата:

проще всего это пишеться на Php !
Спасибо, конечно, но программа уже практически готова (чуть не сдох!), да и должна быть на компилируемом языке.
Я тут подумал... Есть же инструменты парсинга XML, нелязя ли выполнить эту задачу с их помощью?

nc.STRIEM 26.12.2006 21:12

Цитата:

Сообщение от a1nt
да и должна быть на компилируемом языке.

знакомся: php2exe )))

gemaglabin 26.12.2006 21:18

Вот.должно помочь http://www.mytempdir.com/1135328

Ch3ck 26.12.2006 21:26

Гема Шумахер, блин... только, что написал. А нет, надо опередить...

a1nt 26.12.2006 21:43

Цитата:

Вот.должно помочь http://www.mytempdir.com/1135328
Спасибо. Но плиз, объясни, как сделать, чтобы он в одной строке искал несколько раз?
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
s : string;
begin
For i := 0 to memo1.Lines.Count - 1 do begin
s  := memo1.Lines.Strings[i];
if pos('<td class="name"><a href',s) <> 0 then begin
s  := copy(s,pos('<td class="name"><a href=',s)+26,length(s));
s  := copy(s,0,pos('">',s)-1);
memo2.Lines.Add(s);
end;
end;
end;

Потому что он находит первую ссылки и выводит, а мне надо несколько из каждой строки. (((

a1nt 26.12.2006 22:08

О! Нашел проект http://www.regexpstudio.com
Видимо очень удобная вещь. Взял пример по вытаскиванию мыльников из Tstrings. Только вот что-то не глотает мое выражение
'\<td class\=\"name\"\>\<a href=\"'+'[_a-zA-Z\d\-\.]'+'\"\>'
вроде все что может мешать заэкранировал, посмотрите, плииз. Если заставлю это работать будет вообще малина. Буду искать такие же строки, а потом функцией gemaglabin`а выдергивать ссылки.
Как я понимаю язык выражений аналогичен Perl/PHP.

a1nt 26.12.2006 22:46

<td class="name"><a href="(.*)">
Вот чего надумал. Но почему-то возвращает с переводами строки на прбелах

nerezus 26.12.2006 23:17

Цитата:

сть же инструменты парсинга Xml, нелязя ли выполнить эту задачу с их помощью?
Нельзя.
Легко с помощью регекспов.


Время: 13:21