PDA

Просмотр полной версии : Нужна помощь


aydar
27.05.2010, 16:20
Рябят уже часа 3 наверное мучаюсь не могу спарсить логины с форумов ucoz, вот примеры:

sacred

<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="javascript://" rel="nofollow" onclick="window.open('http://sacred2-zone.ru/index/8-780','up780','scrollbars=1,top=0,left=0,resizable= 1,width=680,height=350');return false;">322332</a> <a class="uPM" href="http://sacred2-zone.ru/index/14-780-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s4.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s4.ucoz.net/rnk/10/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="http://www.clan-infibia.clan.su/user.gif" title="Бродяга" /></td><td class="uTd" align="center"><span title="21.15">2008-05-12</span></td><td class="uTd" align="center">0</td></tr>

megasoft

<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="http://www.megasoft.3dn.ru/index/8-26729">$$$FISHER$$$</a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://www.megasoft.3dn.ru/files/rank/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователь <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="/files/gropss/user.png" title="Ученик" /></td><td class="uTd" align="center"><span title="23:08">14.07.2009</span></td><td class="uTd" align="center">0</td><td class="uTd" align="center">Мужчина</td></tr>

webucoz

<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="javascript://" rel="nofollow" onclick="window.open('http://webucoz.com/index/8-5255','up5255','scrollbars=1,top=0,left=0,resizabl e=1,width=680,height=350');return false;">$ergey</a> </td><td class="uTd" align="center">&nbsp;</td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s23.ucoz.net/rnk/6/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="http://webucoz.com/images/uuuser.png" title="Начинающий Вэбмастер" /></td><td class="uTd" align="center"><span title="02:19">10.03.2010</span></td><td class="uTd" align="center">0</td></tr>

forum

<tr><td class="uTd"><div style="float:right;"><a href="http://1988293063.unet.com/" target="_blank"><img alt="" border="0" src="http://s30.ucoz.net/img/ma/uid.gif" align="absmiddle" title="uNet профиль"></a></div><a href="http://forum.ucoz.ua/index/8-51" target="_blank">AnarchySaur</a> </td><td class="uTd" align="center">&nbsp;</td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s30.ucoz.net/rnk/1/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи </td><td class="uTd" align="center"><span title="09:55">07.10.2009</span></td><td class="uTd" align="center">0</td></tr>


Не могу найти общии закономерности для парсинга в принципе конец ника это </a>, а вот откуда начинать парсить ник хз.

HakaR
27.05.2010, 17:17
">username</a> не?

aydar
27.05.2010, 21:53
т.к. искать начало? "> не пойдет, может я вас не понял дайте код, плиз

RedFern.89
27.05.2010, 22:10
ищи по 2м критериям


for I := 0 To Page.count -1 do
begin

If (Pos('">', page[i]) <> 0) and (Pos('</a>', page[i]) <> 0) Then
begin

end;

end;

M_script_
28.05.2010, 09:45
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);
}

aydar
28.05.2010, 21:54
Вот еще недавно ковырялся и что надыбал

<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="javascript://" rel="nofollow" onclick="window.open('http://sacred2-zone.ru/index/8-780','up780','scrollbars=1,top=0,left=0,resizable= 1,width=680,height=350');return false;">322332</a> <a class="uPM" href="http://sacred2-zone.ru/index/14-780-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s4.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s4.ucoz.net/rnk/10/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="http://www.clan-infibia.clan.su/user.gif" title="Бродяга" /></td><td class="uTd" align="center"><span title="21.15">2008-05-12</span></td><td class="uTd" align="center">0</td></tr>


align="center">&nbsp;</td><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="http://o-ucoze.ru/index/8-19297" target="_blank">$$$DIMAN$$$</a> <a class="uPM" href="http://o-ucoze.ru/index/14-19297-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s23.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s23.ucoz.net/rnk/16/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Простой юзер </td><td class="uTd" align="center"><span title="18:47">26.10.2009</span></td><td class="uTd" align="center">0</td>


align="center">&nbsp;</td><td class="uTd"><a href="http://megasoft.3dn.ru/index/8-26729">$$$FISHER$$$</a> <a class="uPM" href="http://megasoft.3dn.ru/index/14-26729-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s7.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://www.megasoft.3dn.ru/files/rank/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователь <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="/files/gropss/user.png" title="Ученик" /></td><td class="uTd" align="center"><span title="23:08">14.07.2009</span></td><td class="uTd" align="center">0</td><td class="uTd" align="center">Мужчина</td>

При авторизации на всех форумах есть, 1 закономерность Отправить Личное Сообщение, можно как то парсить справа налево, т.е. с "Отправить Личное Сообщение" по "">", если да то как, можете кодом помочь.

aydar
28.05.2010, 23:36
Ребят, есть у кого мысли какие?

POS_troi
29.05.2010, 10:58
Если топорно то Boost Regex или если C# то там есть стандартные средства регулярок.

А вообще для чего под такую задачу писать прогу на Высоких языках? Заюзай скрипт на ПхП или Перловке =/

aydar
29.05.2010, 11:03
пишу на делфи, это часть проги, парсер логинов нужен, уже 3 день пытаюсь, есть только одна законномерность с Отправить Личное Сообщение по "> т.е. справа налево но как это в коде делать?

TRX.new
29.05.2010, 11:29
пишу на делфи, это часть проги, парсер логинов нужен, уже 3 день пытаюсь, есть только одна законномерность с Отправить Личное Сообщение по "> т.е. справа налево но как это в коде делать?
Тебе ж сказали, читай о регулярных выражениях!

Chrome~
29.05.2010, 11:39
Лично мой вариант на Delphi, который успешно получает список пользователей из текстов вида, который ты скинул выше (нету никаких гарантий, что он работает везде):

sacred

<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="javascript://" rel="nofollow" onclick="window.open('http://sacred2-zone.ru/index/8-780','up780','scrollbars=1,top=0,left=0,resizable= 1,width=680,height=350');return false;">322332</a> <a class="uPM" href="http://sacred2-zone.ru/index/14-780-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s4.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s4.ucoz.net/rnk/10/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="http://www.clan-infibia.clan.su/user.gif" title="Бродяга" /></td><td class="uTd" align="center"><span title="21.15">2008-05-12</span></td><td class="uTd" align="center">0</td></tr>

megasoft

<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="http://www.megasoft.3dn.ru/index/8-26729">$$$FISHER$$$</a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://www.megasoft.3dn.ru/files/rank/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователь <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="/files/gropss/user.png" title="Ученик" /></td><td class="uTd" align="center"><span title="23:08">14.07.2009</span></td><td class="uTd" align="center">0</td><td class="uTd" align="center">Мужчина</td></tr>

webucoz

<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="javascript://" rel="nofollow" onclick="window.open('http://webucoz.com/index/8-5255','up5255','scrollbars=1,top=0,left=0,resizabl e=1,width=680,height=350');return false;">$ergey</a> </td><td class="uTd" align="center">&nbsp;</td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s23.ucoz.net/rnk/6/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="http://webucoz.com/images/uuuser.png" title="Начинающий Вэбмастер" /></td><td class="uTd" align="center"><span title="02:19">10.03.2010</span></td><td class="uTd" align="center">0</td></tr>

forum

<tr><td class="uTd"><div style="float:right;"><a href="http://1988293063.unet.com/" target="_blank"><img alt="" border="0" src="http://s30.ucoz.net/img/ma/uid.gif" align="absmiddle" title="uNet профиль"></a></div><a href="http://forum.ucoz.ua/index/8-51" target="_blank">AnarchySaur</a> </td><td class="uTd" align="center">&nbsp;</td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s30.ucoz.net/rnk/1/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи </td><td class="uTd" align="center"><span title="09:55">07.10.2009</span></td><td class="uTd" align="center">0</td></tr>
<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="javascript://" rel="nofollow" onclick="window.open('http://sacred2-zone.ru/index/8-780','up780','scrollbars=1,top=0,left=0,resizable= 1,width=680,height=350');return false;">322332</a> <a class="uPM" href="http://sacred2-zone.ru/index/14-780-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s4.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s4.ucoz.net/rnk/10/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="http://www.clan-infibia.clan.su/user.gif" title="Бродяга" /></td><td class="uTd" align="center"><span title="21.15">2008-05-12</span></td><td class="uTd" align="center">0</td></tr>


align="center">&nbsp;</td><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="http://o-ucoze.ru/index/8-19297" target="_blank">$$$DIMAN$$$</a> <a class="uPM" href="http://o-ucoze.ru/index/14-19297-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s23.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s23.ucoz.net/rnk/16/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Простой юзер </td><td class="uTd" align="center"><span title="18:47">26.10.2009</span></td><td class="uTd" align="center">0</td>


align="center">&nbsp;</td><td class="uTd"><a href="http://megasoft.3dn.ru/index/8-26729">$$$FISHER$$$</a> <a class="uPM" href="http://megasoft.3dn.ru/index/14-26729-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s7.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://www.megasoft.3dn.ru/files/rank/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователь <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="/files/gropss/user.png" title="Ученик" /></td><td class="uTd" align="center"><span title="23:08">14.07.2009</span></td><td class="uTd" align="center">0</td><td class="uTd" align="center">Мужчина</td>

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

Ссылка: http://depositfiles.com/files/yuwjqwohc
Пароль: V^#J*!J1

M_script_
30.05.2010, 11:28
пишу на делфи, это часть проги, парсер логинов нужен, уже 3 день пытаюсь, есть только одна законномерность с Отправить Личное Сообщение по "> т.е. справа налево но как это в коде делать?

Что-то неправильно - https://forum.antichat.ru/showpost.php?p=2169660&postcount=5 ?
Или с билдера на делфи переписать сложно?

aydar
30.05.2010, 20:49
Да, вот в таких случаях не работает

<tr><td class="uTd" align="center">&nbsp;</td><td class="uTd"><a href="javascript://" rel="nofollow" onclick="window.open('http://sacred2-zone.ru/index/8-780','up780','scrollbars=1,top=0,left=0,resizable= 1,width=680,height=350');return false;">322332</a> <a class="uPM" href="http://sacred2-zone.ru/index/14-780-0-1" title="Отправить Личное Сообщение"><img alt="" border="0" align="absmiddle" src="http://s4.ucoz.net/img/ma/e1.gif" width="12" height="13" /></a> </td><td class="uTd" align="center"><img alt="" border="0" name="rankimg" src="http://s4.ucoz.net/rnk/10/rank1.gif" align="absmiddle" title="Ранг 1" /></td><td class="uTd" align="center">Пользователи <img alt="" style="margin:0;padding:0;vertical-align:middle;border:0;" name="rankimg" src="http://www.clan-infibia.clan.su/user.gif" title="Бродяга" /></td><td class="uTd" align="center"><span title="21.15">2008-05-12</span></td><td class="uTd" align="center">0</td></tr>

Chrome~
31.05.2010, 00:27
Кстати, M_script_ написал очень хороший и правильный вариант, который работает абсолютно во всех вариантах, написанных выше.

Вот его чуток измененный код, переведенный на Delphi.

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;