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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] StringRegExp. Вытаскивание повторяющихся кусков кода HTML.

Ответить
Настройки темы
[решено] StringRegExp. Вытаскивание повторяющихся кусков кода HTML.

Новый участник


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

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


Изменения
Автор: Creat0R
Дата: 06-12-2009
Есть страничка в которой присутствует относительно повторяющийся код :

читать дальше »
...................................
<TH class="bidder "><A href="?m=now&filter=%CA%EE%E6%E1%E0%F7%E8%F9%E0&order=bidder&dir=asc">ставка</A></TH>
<TH class="bid "><A href="?m=now&filter=%CA%EE%E6%E1%E0%F7%E8%F9%E0&order=bid&dir=asc">ставку</A></TH>
<TH class="buy "><A href="?m=now&filter=%CA%EE%E6%E1%E0%F7%E8%F9%E0&order=buy&dir=asc">купить</A></TH></TR>
[color=blue]
<TR class=row_1>

<TD><IMG onmouseover="doItem('11','Количество перепродаж: 7<br />Количество: 1<br />ставка: 3911\n Кол ставок: 8\n Шаг ставки: 111\nНачало : 11:28 11.12.09\n','','0',event,this)" alt=Кожбачища src="images/Arm_6s.jpg">
<TD>Инкогнито<BR><SPAN id=timer_0>0:11:46 </SPAN>
<TD>2345<IMG class=png alt=Золото align=absMiddle src="images/ico_gold1.png"><BR><A href="player.php?id=233333">GaD_On_Line</A>
<TD>1234<IMG class=png alt=Золото align=absMiddle src="images/ico_gold1.png"><BR><SPAN id=bid_0><A onclick=tradeConfirm(this) href="trade.php?m=bid&id=2332133&bid=23433&k=23445"><IMG class=cmd onmouseover="doImage(this,'buttons/b_trade_bid','skip')" alt=Ставка src="images/buttons/b_trade_bid_p.png"></A></SPAN>
</TD>

<TR class=row_2>
<TD><IMG onmouseover="doItem('34','Количество итем: 2<br />Количество: 1<br />ставка: 5432\n Кол-во ставок: 11\n Шаг ставки: 222\аукциона: 45:46 11.12.09\n','','0',event,this)" alt=Кожбачища src="images/Arm_6s.jpg">
<TD>Инкогнито<BR><SPAN id=timer_1>0:11:27 </SPAN>
<TD>4532<IMG class=png alt=Золото align=absMiddle src="images/ico_gold1.png"><BR><A href="player.php?id=2332432">RedGreenUltras</A>
<TD>1345<IMG class=png alt=Золото align=absMiddle src="images/ico_gold1.png"><BR><SPAN id=bid_1><IMG class=cmd alt=Ставка src="images/buttons/b_trade_bid_b.png"></SPAN>
<TD>----
</TD>

<TR class=row_1>
<TD><IMG onmouseover="doItem('23','Количество перепродаж: 9<br />Количество: 1<br />Начальная ставка: 4532\n Кол-во ставок: 13\n Шаг ставки: 4433\nНачало аукциона: 11:39 11.12.09\n','','1',event,this)" alt=Кожбачища src="images/Arm_6s.jpg">
<TD>Инкогнито<BR><SPAN id=timer_2>0:17:48 </SPAN>
<TD>3532<IMG class=png alt=Золото align=absMiddle src="images/ico_gold1.png"><BR><A href="player.php?id=45322">bos7</A>
<TD>2453<IMG class=png alt=Золото align=absMiddle src="images/ico_gold1.png"><BR><SPAN id=bid_2><IMG class=cmd alt=Ставка src="images/buttons/b_trade_bid_b.png"></SPAN>
<TD>----
</TD>

<TR class=row_2>
<TD><IMG onmouseover="doItem('23','Количество перепродаж: 2<br />Количество: 1<br />Начальная ставка: 3432\n Кол-во ставок: 14\n Шаг ставки: 222\nНачало аукциона: 11:20 11.12.09\n','','0',event,this)" alt=Кожбачища src="images/Arm_6s.jpg">
<TD>Инкогнито<BR><SPAN id=timer_3>0:11:58 </SPAN>
<TD>3421<IMG class=png alt=Золото align=absMiddle src="images/ico_gold1.png"><BR><A href="player.php?id=2322143">enot_us</A>
<TD>3242<IMG class=png alt=Золото align=absMiddle src="images/ico_gold1.png"><BR><SPAN id=bid_3><IMG class=cmd alt=Ставка src="images/buttons/b_trade_bid_b.png"></SPAN>
<TD>----
</TD>
<SCRIPT> var timers = new Array();
.....................................




С этого кода надо выцыпить эти повторы поочереди или массивом.
Каждый из повторов я обозначил разным цветом.
Мой экспериментальный код и он не работает :
Код: Выделить весь код
  $nOffset = 2
  While 1
   	$array = StringRegExp($KodHtml,  "(?s).*<TD><IMG onmouseover(.*?)></A></SPAN>.*" , 1, $nOffset)
   	If @error = 0 Then
   		$nOffset = @extended
   	Else
   		;ExitLoop
   	EndIf
   	for $i = 0 to UBound($array) - 1
   		msgbox(0, "RegExp Test with Option 1 - " & $i, $array[$i])
   	Next
   WEnd
Проще говоря , надо получить вначале синий(первый) кусок кода, потом красный, и т.д.


Заранее благодарю.

Отправлено: 02:17, 05-12-2009

 

Аватара для Creat0R

Must AutoIt


Moderator


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

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


Цитата Creat0R:
Слишком общее название темы - такие вопросы появляются часто »

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

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

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

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 12:46, 05-12-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


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

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


Не выходит.
Пробовал :
$array = StringRegExp($KodHtml, "(?s)<TD><IMG onmouseover(?:\s?)+(.*?)(?:\s?)+</TD>.*" , 1,$nOffset )

$array = StringRegExp($KodHtml, "(?s).*<TD><IMG onmouseover(?:\s?)+(.*?)(?:\s?)+</TD>.*" , 1,$nOffset )

$array = StringRegExp($KodHtml, "(?s).*?<TD><IMG onmouseover(?:\s?)+(.*?)(?:\s?)+</TD>.*" , 1,$nOffset )

Берет первый повтор и всё...

Отправлено: 20:59, 05-12-2009 | #3


Аватара для Creat0R

Must AutoIt


Moderator


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

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


Цитата ikif:
Не выходит »
Что не выходит, я не на решение указал, а дал предупреждение за нарушение правил:

http://forum.oszone.net/rules.html
Цитата:
В заголовке темы обязательно обозначайте название предмета, которого касается вопрос, а в теле сообщения максимально подробно опишите проблему (приведите аппаратную/программную конфигурацию, а также изложите ситуацию, в которой возникает проблема). Темы с несодержательными или слишком общими заголовками будут закрываться или переноситься в раздел "Зона тестирования" в зависимости от политики конкретного форума.

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

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

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

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 00:24, 06-12-2009 | #4


Новый участник


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

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


Подправил.
Мне то понятно что я хочу, поэтому не всегда вижу где что умолчал или не обьяснил.
При первом написании старался описать доступно и подробно, но это с моей колокольни мне так кажется.

Отправлено: 01:21, 06-12-2009 | #5


Аватара для Creat0R

Must AutoIt


Moderator


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

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


Цитата ikif:
С этого кода надо выцыпить эти повторы поочереди или массивом.
Каждый из повторов я обозначил разным цветом. »
Что значит "повторы"? Что именно нужно получить на выходе?

Может так:
Код: Выделить весь код
$sSource = ClipGet() ;В б.обмена содержится текст странички (исходный код)

$sPattern = '(?s).*?<TD><IMG onmouseover=(.*?)>(?:</A>|)</SPAN>.*?'
$aRet = StringRegExp($sSource, $sPattern, 3)

For $i = 0 To UBound($aRet) -1
    MsgBox(64, 'Title', $aRet[$i])
Next

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

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

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

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 02:33, 06-12-2009 | #6


Новый участник


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

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


Огромнейшее спасибо!!!!

Повторы у меня : весь синий кусок текста , это первый повтор. Следующий повтор- весь синий текст и т.д.

Ещё раз извеняюсь , я просто учусь не на русском языке, поэтому трудно иногда выразиться техническим языком.

То что у меня вышло с вашей помощью :

Код: Выделить весь код
$sSource = ClipGet() ;В б.обмена содержится текст странички (исходный код)
$nOffset = 2
While 1
	$sPattern = '(?s).*?<TD><IMG onmouseover=(.*?)</TD>.*?'
	$aRet = StringRegExp($sSource , $sPattern, 1, $nOffset)
		If @error = 0 Then
			$nOffset = @extended
		Else
			ExitLoop
		EndIf
	For $i = 0 To UBound($aRet) -1
		MsgBox(64, 'Title', $aRet[$i])
	Next
WEnd

Весь секрет оказался в "?" в конце . Перед <TD> я пробовал ставить "?" , не помогало.

Эти $sPattern основная проблема у меня.
Жаль что тут на форуме нет одной темы с подробным описанием и с множеством примеров (даже в русском help не очень понял , что к чему ).

Ещё раз,раз,раз СПАСИБО

Отправлено: 09:58, 06-12-2009 | #7


Аватара для Creat0R

Must AutoIt


Moderator


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

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


Только зачем использовать оффсет и цикл?

Вот тот же результат:
Код: Выделить весь код
$sSource = ClipGet() ;В б.обмена содержится текст странички (исходный код)

$sPattern = '(?s).*?<TD><IMG onmouseover=(.*?)</TD>.*?'
$aRet = StringRegExp($sSource, $sPattern, 3)

For $i = 0 To UBound($aRet) -1
    MsgBox(64, 'Title', $aRet[$i])
Next


Цитата ikif:
Жаль что тут на форуме нет одной темы с подробным описанием и с множеством примеров »
Но зато есть поиск (фильтр) - http://forum.oszone.net/forumdisplay...ilter_by=title

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

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

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

Русское сообщество AutoIt | CreatoR's Lab | Opera AC Community


Отправлено: 10:30, 06-12-2009 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] StringRegExp. Вытаскивание повторяющихся кусков кода HTML.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Обработка многострочного HTML кода с одинаковыми строчками. FlatX007 AutoIt 7 02-12-2009 09:50
[решено] Разбор HTML-кода на логические части Мартиша Вебмастеру 9 20-06-2009 00:09
[решено] JavaScript. Генерация html-кода. System Failure Вебмастеру 3 20-07-2007 15:28
Просмотр HTML-кода в IE xkspy Хочу все знать 11 30-11-2006 16:40
оптимизатор HTML кода koresaram Вебмастеру 9 20-09-2003 03:46




 
Переход