Рябят уже часа 3 наверное мучаюсь не могу спарсить логины с форумов ucoz, вот примеры: Не могу найти общии закономерности для парсинга в принципе конец ника это </a>, а вот откуда начинать парсить ник хз.
ищи по 2м критериям Code: for I := 0 To Page.count -1 do begin If (Pos('">', page[i]) <> 0) and (Pos('</a>', page[i]) <> 0) Then begin end; end;
PHP: while(sPage.Pos("<a href")) { sPage.Delete(1, sPage.Pos("<a href")); sPage.Delete(1, sPage.Pos(">")); sUser = sPage; sUser.SetLength(sUser.Pos("<") - 1); UserList->Add(sUser); }
Вот еще недавно ковырялся и что надыбал При авторизации на всех форумах есть, 1 закономерность Отправить Личное Сообщение, можно как то парсить справа налево, т.е. с "Отправить Личное Сообщение" по "">", если да то как, можете кодом помочь.
Если топорно то Boost Regex или если C# то там есть стандартные средства регулярок. А вообще для чего под такую задачу писать прогу на Высоких языках? Заюзай скрипт на ПхП или Перловке =/
пишу на делфи, это часть проги, парсер логинов нужен, уже 3 день пытаюсь, есть только одна законномерность с Отправить Личное Сообщение по "> т.е. справа налево но как это в коде делать?
Лично мой вариант на Delphi, который успешно получает список пользователей из текстов вида, который ты скинул выше (нету никаких гарантий, что он работает везде): Текст, который необходимо спарсить вставляем в первое поле, нажимаем кнопку и результат получаем во втором поле.
Что-то неправильно - https://forum.antichat.ru/showpost.php?p=2169660&postcount=5 ? Или с билдера на делфи переписать сложно?
Кстати, M_script_ написал очень хороший и правильный вариант, который работает абсолютно во всех вариантах, написанных выше. Вот его чуток измененный код, переведенный на Delphi. Code: var p: integer; Data: AnsiString; Username: String; begin Data := Memo1.Text; while pos('<a href', Data) <> 0 do begin Delete(Data, 1, Pos('<a href', Data)); Delete(Data, 1, Pos('>', Data)); Username := copy(Data, 1, Pos('<', Data) - 1); if Username <> '' then Memo2.Lines.Add(Username); end;