Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Понадобилась снова помощь по регулярным выражениям...

Имеем исходный код страницы (это только часть, оно повторяется по той же структуре далее):

Src.txt - Нажмите для показа
Код: Выделить весь код
<div class="vldescbox">
				
				<div  class="vltitle">
					<div class="vlshortTitle">
						<a href="/watch?v=UiPhfbZsS54"  title="WTTC 2008 table tennis best points.... enjoy">WTTC <b>2008 table tennis</b> best points.... enjoy</a>
					</div>
					<div class="vllongTitle">
						<a href="/watch?v=UiPhfbZsS54"  title="WTTC 2008 table tennis best points.... enjoy">WTTC <b>2008 table tennis</b> best points.... enjoy</a>
					</div>
				</div>

									
				<div  class="vldesc">
					the WTTC <b>2008 table tennis</b> best points.... enjoy <b>...</b> WTTC <b>2008 table tennis</b> best points extreme ma lin <b>...</b>
				</div>
			</div>

			<div class="vlclearaltl"></div>



		</div>

		<div class="vlfacets">
			<div class="vladded">
					<span class="grayText">Added:</span> 3 months ago<br/>


			</div>
				<div><span class="grayText vlfromlbl">From:</span><span class="vlfrom"><a href="/user/kioka2" >kioka2</a></span></div>
				<div class="clearL"></div>

			<span class="grayText">Views:</span> 59,747<br/>



			<div class="video-thumb-duration-rating">
								

	<div>

	<img class="ratingVS ratingVS-5.0" alt="4.9" src="http://s.ytimg.com/yt/img/pixel-vfl73.gif" />



	</div>





				<div class="runtime">07:26</div>
			</div>

								<div class="clear"></div>
				<div class="vlcategory">
					<span class="smgrayText">More in</span> <a href="/results?search_category=17&search_query=table%20tennis%202008" >Sports</a>
				</div>

		</div>

		<div class="vlclearaltl"></div>



	</div> <!-- end vEntry -->


		</div>
		<div class="vlclear"></div>




			

		<div class="vlcell" style="width:24.9%">
			


	

	

	<div class="vlentry" >




		<div class="vlcontainer"><div class="v120WideEntry"><div class="v120WrapperOuter"><div class="v120WrapperInner"><a href="/watch?v=EcIsmXhduVc" ><img src="http://i.ytimg.com/vi/EcIsmXhduVc/default.jpg" class="vimg120" title="Highlights of the 2008 Asian Olympic Table Tennis Quali" alt="video"></a><div class="addtoQL90"><a href="#"  ql="EcIsmXhduVc" title="Add Video to QuickList"><img class="QLIconImg" src="http://s.ytimg.com/yt/img/pixel-vfl73.gif" border="0"
	onclick="clicked_add_icon(this, this.parentNode.getAttribute('ql'), 0);_hbLink('QuickList+AddTo','na');return false;"
	onmouseover="mouseOverQuickAdd(this, this.parentNode.getAttribute('ql'))"
	onmouseout="mouseOutQuickAdd(this, this.parentNode.getAttribute('ql'))"></a><div class="hid quicklist-inlist">in <a href="/watch_queue?all">QuickList</a></div></div>

</div></div>
			</div>


			<div class="vldescbox">
				
				<div  class="vltitle">
					<div class="vlshortTitle">
						<a href="/watch?v=EcIsmXhduVc"  title="Highlights of the 2008 Asian Olympic Table Tennis Quali">Highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Quali</a>
					</div>
					<div class="vllongTitle">
						<a href="/watch?v=EcIsmXhduVc"  title="Highlights of the 2008 Asian Olympic Table Tennis Quali">Highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Quali</a>
					</div>
				</div>

									
				<div  class="vldesc">
								<span  id="BeginvidDescEcIsmXhduVc">
	highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Qualification. You will enjoy it! It concludes Wang Nan and Wang Liqin <b>...</b>
	</span>

			<span  id="RemainvidDescEcIsmXhduVc" style="display: none">In this video you can see the highlights of the 2008 Asian Olympic Table Tennis Qualification. You will enjoy it! It concludes Wang Nan and Wang Liqin.</span>
			<span id="MorevidDescEcIsmXhduVc" class="smallText">(<a href="#" class="eLink" onclick="showDiv('RemainvidDescEcIsmXhduVc'); hideDiv('MorevidDescEcIsmXhduVc'); hideDiv('BeginvidDescEcIsmXhduVc'); showDiv('LessvidDescEcIsmXhduVc'); return false;">more</a>)</span>
			<span id="LessvidDescEcIsmXhduVc" style="display: none" class="smallText">(<a href="#" class="eLink" onclick="hideDiv('RemainvidDescEcIsmXhduVc'); hideDiv('LessvidDescEcIsmXhduVc'); showDiv('BeginvidDescEcIsmXhduVc'); showDiv('MorevidDescEcIsmXhduVc'); return false;">less</a>)</span>
	

				</div>
			</div>


Нужно получить значения в массив либо между <div class="vldesc"> и </div>, либо между <div class="vldesc"><span id="BeginvidDesc.*?"> и </span>.

Оно может встречаться и так и так, нужно получить текст описании роликов (это с YouTube исходник).

Вот что должно быть на выходе:

Код: Выделить весь код
$avArray[0] = "WTTC <b>2008 table tennis</b> best points.... enjoy <b>...</b> WTTC <b>2008 table tennis</b> best points extreme ma lin <b>...</b>"
$avArray[1] = "highlights of the <b>2008</b> Asian Olympic <b>Table Tennis</b> Qualification. You will enjoy it! It concludes Wang Nan and Wang Liqin <b>...</b>"
У меня получилось сделать только так:

Код: Выделить весь код
#include <Array.au3>

$sSource = FileRead("Src.txt")

$avArray = StringRegExp($sSource, '(?i)(?s)<div  class="vldesc">.*?[(<span  id="BeginvidDesc.*?">|)](.*?)</span>', 3)

_ArrayDisplay($avArray)
Как видно, добавляется в начало span id="BeginvidDesc....">, а иногда и в конце тоже добавляются теги. Реально ли одно-разовым вызовом StringRegExp (и без дополнительных циклов) получить то что нужно?


Алексей Н.,
Цитата Алексей Н.:
Есть ли возможность принудительно завершить скрипт через какое-то время, если не были приняты никакие действия? »
См. функцию _Timer_SetTimer() в справке.

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 20:07, 04-07-2008 | #700