Как оптимально распарсить большую HTML страницу и получить нужные данные - C#
Формулировка задачи:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html dir="ltr"> <head> <title>фото.галерея | На других посмотреть и себя показать!</title> <meta http-equiv="content-type" content="text/html; charset=windows-1251"> <meta name="description" content="фото.галерея | На других посмотреть и себя показать!"> <meta name="keywords" content=""> <meta name="robots" content="index,follow"> <meta name="revisit-after" content="10 days"> <meta http-equiv="imagetoolbar" content="no"> <link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" /> <link rel="stylesheet" href="./templates/default/style.css?8" type="text/css"> <!--[if IE]><link rel="stylesheet" type="text/css" href="./templates/default/ie.css" media="all" /><![endif]--> <link rel="icon" type="image/png" href="./icon.png" /> <script language="javascript" type="text/javascript"> <!-- var captcha_reload_count = 0; var captcha_image_url = "./captcha.php"; function new_captcha_image() { if (captcha_image_url.indexOf('?') == -1) { document.getElementById('captcha_image').src= captcha_image_url+'?c='+captcha_reload_count; } else { document.getElementById('captcha_image').src= captcha_image_url+'&c='+captcha_reload_count; } document.getElementById('captcha_input').value=""; document.getElementById('captcha_input').focus(); captcha_reload_count++; } // --> </script> <script type="text/javascript" src="js/detailsfunc.js"></script> <script type="text/javascript" src="js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="js/prototype.js"></script> <script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script> <script type="text/javascript" src="js/lightbox.js"></script> <script type="text/javascript" src="highslide/highslide-with-html.js"></script> <link rel="stylesheet" type="text/css" href="highslide/highslide.css" /> <script type="text/javascript"> hs.graphicsDir = 'highslide/graphics/'; hs.outlineType = 'rounded-white'; hs.showCredits = false; hs.wrapperClassName = 'draggable-header'; hs.align = 'center'; </script> <link rel="alternate" type="application/rss+xml" title="RSS Feed: фото.галерея | На других посмотреть и себя показать! (Новые )" href="http://gallery.pitnet.ru/rss.php?action=images"> </head> <body > <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="outl"></td> <td width="1002px"> <table width="100%" border="0" cellpadding="0" cellspacing="0"><td> <!--ads_zone 1000x90 <embed src="ads/ads_1002x90_kino.swf" quality="high" bgcolor="#000" width="1000" height="90">--> <table width="1002px" height="150px" border="0" cellpadding="0" cellspacing="0" class="shapka"><td> <div class="na_8_marta"></div> <div class="logo"><div id="zima"></div><div id="ngod"></div><div id="serd"></div><div id="zvezda"></div><div id="flo"></div><a href="/" alt="фото.галерея | photo.gallery | Фотографируем, общаемся, объединяемся!" title="фото.галерея | photo.gallery | Фотографируем, общаемся, объединяемся!"><img src="./templates/default/images/gall_sep.gif"></a></div> <div class="adszone"> <!--первомайские шары--> <div class="balmay"></div> <!--end первомайские шары--> <!-- <a href="http://gallery.pitnet.ru/advanced/estetiq/estetiq.php"><img src="./ads/fraim.gif"></a> --> <div style="position: relative; float: right; right: 5px;"> <a href='http://tvmasterskaya.pitnet.ru/'><img src='ads/ads_250x90_tvm.jpg' /></a> </div> <!-- <script language="JavaScript" type="text/javascript"> function randomize(min,max) {return((Math.ceil(Math.random() * (max - min + 1) + min - 1))+"")} document.write('<iframe width="250" height="90" src="ads/shapka25090_#id.html" frameborder="0" scrolling="no" ></iframe>'.replace(/#id/i,randomize(1,2))) </script> --> <!-- <a href='http://tvmasterskaya.pitnet.ru/'><img src='ads/ads_250x90_tvm.jpg' /></a> --></div> </td></table></td> <tr> <td> <table width="100%" border="0" cellpadding="10" cellspacing="0"> <tr> <td width="32%" valign="top" class="lb"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <td class="bz">Фото.галерея</td> <tr> <td class="bc"><b>Im_CSharp</b><br /> <br /> <div class="loginfo1"> <li class="bred"><a href="rules">Правила фото.галереи</a></li> <li class="bred"><a href="faq">Раздел помощи</a></li> <li><b><a href="complaint">Книга отзывов и предложений</a></b></li> <li><a href="./member.php?action=editprofile">Настройка профиля</a></li> <li><a href="search.php">Поиск фотографий</a></li> <li><a href="phototop">Лучшие фотографии</a></li> <li><b><a href="search?search_new_images">Новые фотографии</a></b></li> <li><b><a href="./lightbox.htm">Мое избранное</a></b></li> <li><b><a href="./uid26353">Мой фотоальбом</a></b></li> <li><b><a href="uploads">Загрузить фотографию</a></b></li> </div> <div class="loginfo2"> <li><span class="tliul"><b>Личные сообщения</b></span></li> <ul><li><a href="./pm.php?action=inbox" title="Всего сообщений: 0">Входящие</a><span class="tliul">:</span> <span class="tliulb">0</span></li> <li><a href="./pm.php?action=sentbox" title="Всего сообщений: 0">Отправленные</a><span class="tliul">:</span> <span class="tliulb">0</span></li> <li><a href="./pm.php?action=outbox" title="Всего сообщений: 0">Исходящие</a><span class="tliul">:</span> <span class="tliulb">0</span></li> <li><a href="./pm.php?action=new">Новое сообщение</a></li><div class="tliul">У Вас <b><a href="./pm.php">0</a></b> новых входящих сообщений.</div></ul> </div> <div class="loginfo1"> <li><b><a href="comments_all.php">Новые комментарии</a></b></li> <li><b><a href="./member.php?action=showcomments&user_id=26353">Мои комментарии</a></b></li> <li><b><a href="./member.php?action=readcomments">Комментарии к моим фото: <span class="bred2">0</span></a></b></li> <li><a href="./logout.php">Выйти</a></li> </div> <div class="menuha"> <a href="search?search_new_images"><img src="./templates/default/images/bnew.gif" border="0" alt="Новые фотографии" title="Новые фотографии" width="90px" height="30px"></a> <a href="comments_all.php"><img src="./templates/default/images/bcom.gif" border="0" alt="Новые комментарии" title="Новые комментарии" width="90px" height="30px"></a> <a href="uploads"><img src="./templates/default/images/bup.gif" border="0" alt="Загрузить фотографию" title="Загрузить фотографию" width="90px" height="30px"></a> <a href="articles.php"><img src="./templates/default/images/bart.gif" border="0" alt="Статьи по фотографии" title="Статьи по фотографии" width="90px" height="30px"></a> <a href="victory"><img src="./templates/default/images/fpobed.gif" border="0" alt="Победители" title="Победители" width="90px" height="30px"></a> </div></td> <tr> <td class="bz2">На правах рекламы</td> <tr> <td class="bc_ads"><img src="ads/ads250x200_next.jpg" border="0"></td> <tr> <td class="bz">Кто в on-line</td> <tr> <td class="bc">Всего: <b>46</b> | Зарегистрированных: <b>42</b> | Скрытых: <b>5</b> | Гостей: <b>4</b> <div class="bordt"><br /><a href="./uid346">BratOk</a>, <a href="./uid664">MEGABOSS</a>, <a href="./uid1532">yuriytimofeev</a>, <a href="./uid5356">nala</a>, <a href="./uid6936">_For_you_</a>, <a href="./uid9104">BrAbUs</a>, <a href="./uid9392">twig</a>, <a href="./uid10238">Abbey</a>, <a href="./uid11194">Naxeraa</a>, <a href="./uid11459">funnyman</a>, <a href="./uid12008">nelyaaa</a>, <a href="./uid12152">.::Recke::.</a>, <a href="./uid13036">uKKK</a>, <a href="./uid13192">out_tonight</a>, <a href="./uid15772">Charice</a>, <a href="./uid16328">Temira</a>, <a href="./uid17006">КтО-То</a>, <a href="./uid17638">чао</a>, <a href="./uid17848">honeyed</a>, <a href="./uid17943">Rado9013</a>, <a href="./uid18155">ПozaRezZ</a>, <a href="./uid18305">LuckyGinger</a>, <a href="./uid18460">Aristokrat</a>, <a href="./uid18750">BaLTo</a>, <a href="./uid21072">Nneka</a>, <a href="./uid21289">CMEPTb</a>, <a href="./uid21475">_Мерси_</a>, <a href="./uid21918">Polinka</a>, <a href="./uid22208">Vitan</a>, <a href="./uid24139">pina</a>, <a href="./uid24897">буратино</a>, <a href="./uid25036">Хильд</a>, <a href="./uid25521">sss___sss</a>, <a href="./uid25863">ltdxtyrf</a>, <a href="./uid26327">Kriskiskis</a>, <a href="./uid26353">Im_CSharp</a>, <a href="./uid26363">анастасия</a></div><div class="bordt"><br /><b>Сегодня поздравляем:</b><br /><br /><a href="./uid24176">79248544231</a>, <a href="./uid26085">AnnA83</a>, <a href="./uid14734">anzor</a>, <a href="./uid20569">Banana_Moon</a>, <a href="./uid23339">com</a>, <a href="./uid21551">Crazy_Art</a>, <a href="./uid20145">ginger</a>, <a href="./uid15627">Goshan</a>, <a href="./uid16888">ничка</a>, <a href="./uid17629">mcnasty</a>, <a href="./uid7803">mimio</a>, <a href="./uid23812">nerka67</a>, <a href="./uid15960">nico</a>, <a href="./uid19533">vagon</a>, <a href="./uid17116">vagona</a></div></td> </table> </td> <td width="68%" valign="top" class="rb"><table width="100%" border="0" cellpadding="0" cellspacing="0"> <td> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <td class="bzb2"><a href="./search?search_good_images" class="whitelink">Хорошие фотографии</a> | <a href="./search?search_new_images" class="whitelink">Все фотографии</a></td> <tr> <td class="bcb"><table width="100%" border="0" cellpadding="5" cellspacing="1"><tr class="imagerow1"> <td width="25%" valign="top"> <div class="nimages"><img src="./templates/default/images/clock.gif" width="10" height="10"> <span class="dte">30.06.2012 в 22:06</span><br /><br /><a href="./photo98040"><img src="./data/thumbnails/69/photo_1340964389.jpg" border="0" width="140" height="139" alt="Фотосушка" title="Фотосушка" /></a><br /><br /> <b>Фотосушка</b><br /><a href="./uid2235">drs</a></div> </td> <td width="25%" valign="top"> <div class="nimages"><img src="./templates/default/images/clock.gif" width="10" height="10"> <span class="dte">30.06.2012 в 08:00</span><br /><br /><a href="./photo98054"><img src="./data/thumbnails/57/photo_1341000041.jpg" border="0" width="140" height="93" alt="***" title="***" /></a><br /><br /> <b>***</b><br /><a href="./uid6424">ivankislov</a></div> </td> <td width="25%" valign="top"> <div class="nimages"><img src="./templates/default/images/clock.gif" width="10" height="10"> <span class="dte">30.06.2012 в 00:58</span><br /><br /><a href="./photo98051"><img src="./data/thumbnails/77/photo_1340974722.jpg" border="0" width="140" height="62" alt="Конфетно-букетное :)" title="Конфетно-букетное :)" /></a><br /><br /> <b>Конфетно-букетное :)</b><br /><a href="./uid11973">Ambi</a></div> </td> <td width="25%" valign="top"> <div class="nimages"><img src="./templates/default/images/clock.gif" width="10" height="10"> <span class="dte">30.06.2012 в 00:36</span><br /><br /><a href="./photo98050"><img src="./data/thumbnails/19/photo_1340973402.jpg" border="0" width="140" height="140" alt="*" title="*" /></a><br /><br /> <b>*</b><br /><a href="./uid16697">eugenetrufanov</a></div> </td> </tr> <tr class="imagerow1"> <td width="25%" valign="top"> <div class="nimages"><img src="./templates/default/images/clock.gif" width="10" height="10"> <span class="dte">30.06.2012 в 00:12</span><br /><br /><a href="./photo98048"><img src="./data/thumbnails/19/photo_1340971966.jpg" border="0" width="140" height="140" alt="*" title="*" /></a><br /><br /> <b>*</b><br /><a href="./uid16697">eugenetrufanov</a></div> </td> <td width="25%" valign="top"> <div class="nimages"><img src="./templates/default/images/clock.gif" width="10" height="10"> <span class="dte">29.06.2012 в 23:16</span><br /><br /><a href="./photo98044"><img src="./data/thumbnails/15/photo_1340968568.gif" border="0" width="140" height="92" alt="Гифка" title="Гифка" /></a><br /><br /> <b>Гифка</b><br /><a href="./uid4638">triller</a></div> </td> <td width="25%" valign="top"> <div class="nimages"><img src="./templates/default/images/clock.gif" width="10" height="10"> <span class="dte">29.06.2012 в 22:57</span><br /><br /><a href="./photo98043"><img src="./data/thumbnails/77/photo_1340967469.jpg" border="0" width="140" height="140" alt="Кружечки :)" title="Кружечки :)" /></a><br /><br /> <b>Кружечки :)</b><br /><a href="./uid11973">Ambi</a></div> </td> <td width="25%" valign="top"> <div class="nimages"><img src="./templates/default/images/clock.gif" width="10" height="10"> <span class="dte">29.06.2012 в 22:19</span><br /><br /><a href="./photo98042"><img src="./data/thumbnails/61/photo_1340965162.jpg" border="0" width="105" height="140" alt="Анапа" title="Анапа" /></a><br /><br /> <b>Анапа</b><br /><a href="./uid8761">trojan</a></div> </td> </tr> </table> </td> </table> <br /><a href="photo98040" target="blank_"><img src="ads/ads_660x90_sushka.jpg" border="0"></a><br /> <!--news--> <br /> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td class="bzb">Что нового?</td> </tr> <tr> <td class="bcb_info"><table width="100%" border="0" cellpadding="5" cellspacing="1"><tr> <td width="100%" valign="top"> <b>Фотосушка</b><br /><span class="newsb">Автор: <b>AlNikonov</b> | 29.06.2012 в 22:36</span> </td> </tr> <tr> <td width="100%" valign="top" class="newsbottom">8 июля в 19.00 в Сквере блогеров, площадь Горького (сквер 70-е Магадана)<br /> Приглашаются все желающие! При себе иметь собственные фотографии любого размера. <br /> На обратной стороне подпись автора и телефон по желанию.<br /> Веревку и прищепки с собой нести НЕ НАДО!<br /> Каждый посетитель фотовыставки «Сушка» может стать ее участником, на это и рассчитана выставка. На натянутых веревках будут развешаны фотографии, любой пришедший сможет забрать понравившуюся, а взамен повесить свое творение. Общение, знакомства.<br/><br/> </td> </tr> </table> <a href="news.php"><u class="undred">Архив новостей</u></a></td> </tr> </table> <!--news end--> </td> <tr> <td><br /><table width="100%" border="0" cellpadding="0" cellspacing="0"> <td class="bzb2">Фото.категории</td> <tr> <td class="bcb"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="34%"> <table border="0" cellpadding="2" cellspacing="2"> <tr> <td valign="top"> <span class="cat_pics"><a href="/section2"><img src="data/catpic/2.jpg" width="35" height="35" title="Девушки" alt="Девушки" align="left" /></a></span><span class="cater"><a href=./section2>Девушки</a></span> <span class="new"> +47</span><br /> <span class="opisan">Предприимчивые молодые люди подыскивают себе жен-красавиц в коридорах этой галереи</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section3"><img src="data/catpic/3.jpg" width="35" height="35" title="Парни" alt="Парни" align="left" /></a></span><span class="cater"><a href=./section3>Парни</a></span> <span class="new"> +10</span><br /> <span class="opisan">Предприимчивые девушки часто стремятся найти здесь сильное мужское плечо (:</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section5"><img src="data/catpic/5.jpg" width="35" height="35" title="Детский мир" alt="Детский мир" align="left" /></a></span><span class="cater"><a href=./section5>Детский мир</a></span> <span class="new"> +12</span><br /> <span class="opisan">Дети — цветы жизни. Даешь букет! (:</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section70"><img src="data/catpic/70.jpg" width="35" height="35" title="Семья" alt="Семья" align="left" /></a></span><span class="cater"><a href=./section70>Семья</a></span> <span class="new"> +3</span><br /> <span class="opisan">Папа, мама, я — крепкая семья!</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section6"><img src="data/catpic/6.jpg" width="35" height="35" title="Гламур" alt="Гламур" align="left" /></a></span><span class="cater"><a href=./section6>Гламур</a></span> <span class="new"> +1</span><br /> <span class="opisan">Необычно. Ярко. Изысканно. А иногда просто и со вкусом</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section47"><img src="data/catpic/47.jpg" width="35" height="35" title="Портрет" alt="Портрет" align="left" /></a></span><span class="cater"><a href=./section47>Портрет</a></span> <span class="new"> +4</span><br /> <span class="opisan">Если интеллект собеседника впечатляет, одно воззрение лица может приносить удовольствие</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section63"><img src="data/catpic/63.jpg" width="35" height="35" title="Свадебное фото" alt="Свадебное фото" align="left" /></a></span><span class="cater"><a href=./section63>Свадебное фото</a></span> <span class="new"> +2</span><br /> <span class="opisan">Она пела, она плясала</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section4"><img src="data/catpic/4.jpg" width="35" height="35" title="Весёлая компания" alt="Весёлая компания" align="left" /></a></span><span class="cater"><a href=./section4>Весёлая компания</a></span> <span class="new"> +3</span><br /> <span class="opisan">Ты и твои друзья на одном фото во время отдыха, развлечений или работы</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section65"><img src="data/catpic/65.jpg" width="35" height="35" title="Видео" alt="Видео" align="left" /></a></span><span class="cater"><a href=./section65>Видео</a></span> <span class="new"> +2</span><br /> <span class="opisan">Здесь каждый может похвастаться своим художественным фильмом, или красивым слайд-шоу</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section7"><img src="data/catpic/7.jpg" width="35" height="35" title="Животные" alt="Животные" align="left" /></a></span><span class="cater"><a href=./section7>Животные</a></span> <span class="new"> +26</span><br /> <span class="opisan">Кто сказал, что животные не любят фотосессии?</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section10"><img src="data/catpic/10.jpg" width="35" height="35" title="Пейзажи" alt="Пейзажи" align="left" /></a></span><span class="cater"><a href=./section10>Пейзажи</a></span> <span class="new"> +19</span><br /> <span class="opisan">Художественные фото панорам и пейзажей</span><br /> </td> </tr> </table></td> <td valign="top" width="34%" class="catbgcolor"> <table border="0" cellpadding="2" cellspacing="2"> <tr> <td valign="top"> <span class="cat_pics"><a href="/section50"><img src="data/catpic/50.jpg" width="35" height="35" title="Природа" alt="Природа" align="left" /></a></span><span class="cater"><a href=./section50>Природа</a></span> <span class="new"> +24</span><br /> <span class="opisan">Любишь природу, которая нас окружает?</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section61"><img src="data/catpic/61.jpg" width="35" height="35" title="Путешествия" alt="Путешествия" align="left" /></a></span><span class="cater"><a href=./section61>Путешествия</a></span> <span class="new"> +8</span><br /> <span class="opisan">Я там был, пиво пил...</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section41"><img src="data/catpic/41.jpg" width="35" height="35" title="Макро" alt="Макро" align="left" /></a></span><span class="cater"><a href=./section41>Макро</a></span> <span class="new"> +12</span><br /> <span class="opisan">Вооружаемся оптикой — и в путь! Рассмотрим микро-мир в макро?</span><br /> </td> </tr> <tr> <td valign="top"> <span class="cat_pics"><a href="/section42"><img src="data/catpic/42.jpg" width="35" height="35" title="Натюрморт" alt="Натюрморт" align="left" /></a></span><span class="cater"><a href=./section42>Натюрморт</a></span> <br /> <span class="opisan">Пробуем себя в роли продвинутых фотографов. Накрываем скатерть и составляем предметы (:</span><br /> </td> </tr> <tr>
Решение задачи: «Как оптимально распарсить большую HTML страницу и получить нужные данные»
textual
Листинг программы
using System; using GalleryAPI; using HtmlAgilityPack; namespace ConsoleTest { class Program { public static void Main(string[] args) { HtmlDocument HTMLDoc = new HtmlDocument(); HTMLDoc.LoadHtml(Needs.Autorization()); var node = HTMLDoc.DocumentNode.SelectSingleNode(@"/html/body/table/tbody/tr/td[2]/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[2]/td/div[2]/ul/li/span[2]"); Console.Write(node.InnerText); Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д