Парсинг html Regexp

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
eldar22
Обычный пользователь
Обычный пользователь
 
Сообщения: 91
Зарегистрирован: 09.09.2008 (Вт) 18:11

Парсинг html Regexp

Сообщение eldar22 » 02.06.2009 (Вт) 11:41

Вот вопрос как сделать парсинг вот этого html

Код: Выделить всё
<html>
<head>
<style type="text/css">
.name { font: bolder 13px Verdana; color: white; text-align: center; }
</style>
<script>
function ch_bg(ob) { ob.style.background='#205183'; ob.style.cursor='hand'; }
function report(p_id) { reason=window.prompt("Причина быстрого сообщения модератору о сайте:",""); if (reason) { window.open('http://www.сайт.ru/cgi-bin/surf_report.cgi?id='+p_id+'&r='+reason,'1','width=400,height=50,resizable=0,scrollbars=0,menubar=0,status=0,titlebar=0,fullscreen=0,toolbar=0,hotkeys=0,location=0'); } }
function countdown() { var cd=counter.digits; if(cd.value>0){--cd.value;if(cd.value.length<2){cd.value="0"+cd.value}}if(cd.value==5){document.all["surf_big"].src='http://www.сайт.ru/surf_big.php?ch=BlIfGJNXNbb7JSkG';}if(cd.value==0){clearTimeout("countdown()")}setTimeout("countdown()",1000);}
function submit_surf() { if (counter.digits.value>0){alert('Осталось '+counter.digits.value+' секунд(ы)');return false;}else{return true;}}
function block(p_id) { window.open('http://www.сайт.ru/cgi-bin/surf_block.cgi?id='+p_id,'1','width=400,height=50,resizable=0,scrollbars=0,menubar=0,status=0,titlebar=0,fullscreen=0,toolbar=0,hotkeys=0,location=0'); }
</script>
</head>
<body bgcolor="#DEE7EF" style="margin: 0 0 0 0;" oncontextmenu="return false;">
<table width=100% height=100% border=0 cellspacing=0 cellpadding=1>
<tr><td><table width=100% height=100% bgcolor="black" border=0 cellspacing=0 cellpadding=0><tr><td>
<table width=100% height=100% border=0 cellspacing=1 cellpadding=1>
<tr bgcolor="#003163"><td class="name">Счетчик</td><td class="name">Картинка</td>
<td rowspan=5 width=150 align=center valign=middle bgcolor=white><form action="http://www.сайт.ru/surf.php" method="post" style="margin: 0 0 0 0;" onsubmit="return submit_surf()" target="_top" name="chf"><input type="image" name="sbmt" id="surf_big" width=150 height=100 border=0 src="/images/surf_150_100.gif"><input type=hidden name=ch></form></td>
<td width=75 class="name" align=center>WMZ</td><td width=75 class="name" align=center>Кредиты</td>
<td width=90 class="name" onmouseover="ch_bg(this)" onmouseout="this.style.background='#003163'" align=center><a href="http://www.сайт.ru/cgi-bin/main.cgi" target="_blank" style="color: white;"><u>В аккаунт</u></a></td>
<td width=100 class="name" onmouseover="ch_bg(this)" onmouseout="this.style.background='#003163'" align=center><a href="#" onclick="block(110910)" style="color: white;"><u>Заблокировать</u></a></td>
<td width=100 class="name" onmouseover="ch_bg(this)" onmouseout="this.style.background='#003163'" align=center><a href="#" onclick="report(110910)" style="color: white;"><u>Модератору</u></a></td></tr>
<tr style="text-align: center; background: #DEE7EF;">
<td rowspan=4 valign=middle><form name="counter" style="margin: 0 0 0 0;"><input type="submit" name="digits" style="border: 1 solid black; text-align: center; background: #AFC6DB; font: normal 25px Arial;" onclick="return false;" value="30"></form></td>
<td rowspan=4 valign=middle><table width=55 height=55 border=0 bgcolor="black" cellspacing=1 cellpadding=0>
<tr><td bgcolor="white" align=center valign=middle><img border=0 src="http://www.сайт.ru/surf_small.php?ch=BlIfGJNXNbb7JSkG"></td></tr></table></td>
<td height=25 rowspan=2><b>0.94840</b></td><td height=25 rowspan=2><b>1485.96</b></td>
<td colspan=2 bgcolor="#AFC6DB" style="font: normal 15px Arial;" rowspan=2>Вы заработаете: <b>1 кредит</b></td>
<td style="padding: 1 1 1 1; font: 10px Arial;"><a href="http://reklamnedela.narod.ru" target="_blank" title="Открыть этот сайт в новом окне браузера">Открыть в новом окне</a></td></tr>
<tr><td bgcolor="#DEE7EF" style="font: bolder 10px Arial;">&nbsp;&nbsp;Подсказка:</td></tr>
<tr style="text-align: center; background: #DEE7EF;"><td colspan=2 bgcolor="#AFC6DB" style="font: bolder 15px Arial;" align=center><a href="javascript:void(0)" onclick="parent.location.href='http://www.сайт.ru/surf.php?skip=110910'" style="color: black;"><u>Пропустить сайт</u></a></td>
<td colspan=3 rowspan=2 style="font: normal 11px Arial; padding: 3px; text-align: justify;" width=300>Адрес сайта: <b>http://reklamnedela.narod.ru</b></td></tr>
<tr><td colspan=2 bgcolor="#AFC6DB" style="font: normal 11px Arial;" align=center>&nbsp;</td></tr>
</table></td></tr></table>
</td></tr>
</table><script>countdown();chf.ch.value=parent.document.getElementById("website_frame").title;</script><div style="display: none">42191820</div>
</body>
</html>



Чтобы вытащить вот это значение src="http://www.сайт.ru/surf_small.php?ch=BlIfGJNXNbb7JSkG

С помощью этого можно сделать парсинг только другого html
Код: Выделить всё
Dim regexp As New regexp
Dim m As MatchCollection

    regexp.Global = True
    regexp.Pattern = "title=""(.*?)"""
   
    Set m = regexp.Execute(RichTextBox1.Text)
    Text1.Text = (m.Item(0).SubMatches(0))


Код: Выделить всё
<html>
<head>
<title>Серфинг</title>
</head>

<frameset rows="*,106" frameborder=1 bordercolor=black framespacing=0>
<frame name="surf_site_eFp" src="http://www.сайт.ru/r.swf?url=http://mirsauni.ru&" noresize scrolling=auto id="website_frame" title="gSyAlPTtPc">
<frame name="surf_frame" src="http://www.сайт.ru/surf_frame.php" noresize scrolling=no>
</frameset>
-604174765</html>



В text1 появляется значение gSyAlPTtPc

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Парсинг html Regexp

Сообщение alibek » 02.06.2009 (Вт) 11:53

Сам думать пробовал?
Поскольку даже попыток думать самостоятельно в написанном посте не наблюдается, тему закрою.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Mail.ru [бот] и гости: 82

    TopList