Показать сообщение отдельно
  #19  
Старый 13.01.2011, 21:54
ChinYan ChinYan вне форума
Тыкаю клавиши
 
Регистрация: 13.07.2009
Сообщения: 804
Версия Delphi:
Репутация: 48633
По умолчанию

Цитата:
Сообщение от nex
А вот это НЕПЛОХАЯ мысля))) Спасибо. НО Выведется же вся страница.. а нужно отсеять только цитату...

Как можно организовать Парсинг, на моём примере?

На самом деле, все давольно просто:

Вот страница баша с цитатой:

Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
	<title>bash.org.ru - Цитатник Рунета</title>
	<link rel="shortcut icon" href="http://s.bash.org.ru/favicon.ico" type="image/vnd.microsoft.icon">
	<link rel="stylesheet" type="text/css" media="screen" href="http://s.bash.org.ru/screen.css?643545321542">
	<link rel="stylesheet" type="text/css" media="handheld" href="http://s.bash.org.ru/mobile.css">
	<link rel="alternate" title="Bash.org.ru RSS" href="http://bash.org.ru/rss/" type="application/rss+xml">
	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
	<script src="http://s.bash.org.ru/mtools.js" language="JavaScript" type="text/javascript" charset="windows-1251"></script> 
</head>
<body>
<div id="navstrip"><b>[bash.org.ru]</b> [<a href="http://ithappens.ru">IT Happens</a>] [<a href="http://zadolba.li">zadolba.li</a>]<img src="http://o.hai.lolwut.ru/" width="0" height="0" style="visibility: hidden;"></div><div id="page">
	<div class="header"><a href="/"><img src="http://s.bash.org.ru/logo.gif" width="300" height="40" alt="bash.org.ru" /></a><p>bash.org.ru —*Цитатник Рунета</p></div>
	<div class="menu"><div class="menublock">
			цитаты: [<a href="/">последние</a>] [<a href="/random">случайные</a>] [<a href="/best">лучшие</a>] [<a href="/byrating">по рейтингу</a>] [<a href="/rss">RSS</a>] [<a href="http://twitter.com/b_o_r/" target="blank">Twitter</a>] <br>бездна: [<a href="/abyss">Бездна</a>] [<a href="/abysstop">топ Бездны</a>] [<a href="/abyssbest">лучшее Бездны</a>] [<a href="/add">добавить</a>] <br>что-то: [<a href="/comics">комикс</a>] [<a href="/faq">ЧаВО</a>] [<a href="http://maillist.ru/81859/" target="blank">рассылка</a>] [<a href="/webmaster">вебмастеру</a>] 
		</div>
				<div class="searchblock">
			введите текст или номер цитаты:
			<form action="/"><input type="text" name="text" value="" class="searchbox">
			<input type="submit" value="Найти" class="button"></form>
		</div>
		<br style="clear: both;">	</div>
	<div id="quotes">		 
	<div class="q">
		<div class="vote">
			<a href="/quote/77">77</a>
						[ <span id="v77">2259</span> ]
			<a href="/quote/77/rulez" onclick="v(77, 0, 0); return false;">смешно</a> /
			<a href="/quote/77/bayan" onclick="v(77, 2, 0); return false;">[:||||:]</a> /
			<a href="/quote/77/sux" onclick="v(77, 1, 0); return false;">не смешно</a> /
						утверждена 2004-08-31 в 09:32
					</div>
		<div>&lt;PPDV&gt; Слт, сделай мне whois <br />&lt;fox_&gt; только нежно! =) </div>
	</div>	 
	 
 
<div class="q"><div><center><iframe src="http://lol.bash.org.ru/_ad.php?zone=zone:3" allowtransparency="true" class="b600" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" name="ctf" id="ctf"></iframe></center></div></div><hr class="iq"><div class="q"><div><a href="/gogogo/30300" target="_blank">Новый магазин лицензионного контента Trava.ru: тысячи треков любимых исполнителей, хит-парад твоего настроения!</a><img src="http://ad.adriver.ru/cgi-bin/rle.cgi?sid=1&bt=21&ad=245605&pid=495577&bid=920467&bn=920467&rnd=437997164" width="0" height="0"></div></div> </div>
	<div class="menu">цитаты: [<a href="/">последние</a>] [<a href="/random">случайные</a>] [<a href="/best">лучшие</a>] [<a href="/byrating">по рейтингу</a>] [<a href="/rss">RSS</a>] [<a href="http://twitter.com/b_o_r/" target="blank">Twitter</a>] <br>бездна: [<a href="/abyss">Бездна</a>] [<a href="/abysstop">топ Бездны</a>] [<a href="/abyssbest">лучшее Бездны</a>] [<a href="/add">добавить</a>] <br>что-то: [<a href="/comics">комикс</a>] [<a href="/faq">ЧаВО</a>] [<a href="http://maillist.ru/81859/" target="blank">рассылка</a>] [<a href="/webmaster">вебмастеру</a>] </div>
	<hr><center class="badges"><!--Rating@Mail.ru LOGO--><a target=_top
href="http://top.mail.ru/jump?from=901403"><img
src="http://top.list.ru/counter?id=901403;t=49;l=1"
border=0 height=31 width=88
alt="Рейтинг@Mail.ru"/></a> <!--/LOGO--><!--LiveInternet logo--><a href="http://www.liveinternet.ru/click"
target=_blank><img src="http://counter.yadro.ru/logo?15.1" border=0
title="LiveInternet"
alt="" width=88 height=31></a><!--/LiveInternet-->
<a href="http://www.yandex.ru/cy?base=0&host=bash.org.ru"><img src="http://www.yandex.ru/cycounter?bash.org.ru" width="88" height="31" alt="Индекс Цитирования Яndex" border="0"></a>


<!--Openstat--><span id="openstat926575"></span><script type="text/javascript">
var openstat = { counter: 926575, image: 5041, next: openstat, track_links: "all" }; document.write(unescape("%3Cscript%20src=%22http" +
(("https:" == document.location.protocol) ? "s" : "") +
"://openstat.net/cnt.js%22%20defer=%22defer%22%3E%3C/script%3E"));
</script><!--/Openstat-->

</center>	<hr><small>Идея проекта &copy; bash.org.
	<br>Реализация и плюшки &copy; 2004—2011, команда bash.org.ru.
	<br><a href="http://lolwut.ru/bash.org.ru.html">Информация для рекламодателей</a>. По другим поводам: <a href="mailto:%20su%70por%74%40%62ash%2e%6f%72%67.r%75">support@bash.org.ru</a>.
	</small>
</div>
<!--Rating@Mail.ru COUNTER--><script language="JavaScript" type="text/javascript"><!--
d=document;var a='';a+=';r='+escape(d.referrer)
js=10//--></script><script language="JavaScript1.1" type="text/javascript"><!--
a+=';j='+navigator.javaEnabled()
js=11//--></script><script language="JavaScript1.2" type="text/javascript"><!--
s=screen;a+=';s='+s.width+'*'+s.height
a+=';d='+(s.colorDepth?s.colorDepth:s.pixelDepth)
js=12//--></script><script language="JavaScript1.3" type="text/javascript"><!--
js=13//--></script><script language="JavaScript" type="text/javascript"><!--
d.write('<img src="http://top.list.ru/counter'+
'?id=901403;js='+js+a+';rand='+Math.random()+
'" height=1 width=1/>')
if(11<js)d.write('<'+'!-- ')//--></script><noscript><img
src="http://top.list.ru/counter?js=na;id=901403"
height=1 width=1 alt=""/></noscript><script language="JavaScript" type="text/javascript"><!--
if(11<js)d.write('--'+'>')//--></script><!--/COUNTER-->
<!--LiveInternet counter--><script type="text/javascript"><!--
document.write("<img src='http://counter.yadro.ru/hit?r"+
escape(document.referrer)+((typeof(screen)=="undefined")?"":
";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth?
screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+
";"+Math.random()+
"' width=1 height=1 alt=''>")//--></script><!--/LiveInternet--><script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3271837-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</body>
</html>

При этом я позволил себе сделать текст самой цитаты жирным можно получить этот текст посредством get-запроса на сайт. И используя элементарную функцию Pos найти это место

Код:
<div class="vote">
			<a href="/quote/77">77</a>
						[ <span id="v77">2259</span> ]
			<a href="/quote/77/rulez" onclick="v(77, 0, 0); return false;">смешно</a> /
			<a href="/quote/77/bayan" onclick="v(77, 2, 0); return false;">[:||||:]</a> /
			<a href="/quote/77/sux" onclick="v(77, 1, 0); return false;">не смешно</a> /
						утверждена 2004-08-31 в 09:32
					</div>
		<div>&lt;PPDV&gt; Слт, сделай мне whois <br />&lt;fox_&gt; только нежно! =) </div>
	</div>	 

или что-то вроде этого. Удалить все кроме

Код:
&lt;PPDV&gt; Слт, сделай мне whois <br />&lt;fox_&gt; только нежно! =)

Заменить <br /> на #13, а &lt; и &gt; на < и > соответственно. Ещё не помешалобы проверить на другие символы html, которые отображаются как &<что-то>;, и заменить это на нормальный символ.

После чего сделать
Код:
Memo1.Lines.Text:=quote; //где quote - переменная, хранящая цитату.
как-то так. Конечно, это все можно оптимизировать, но это уже можно сделать и самому.
Ответить с цитированием