Что нового

Как выбрать текст между тегами?

Автор
B

BETAJIb

Новичок
Сообщения
34
Репутация
0
может кто то помоч??уже 2 дня на это убил...так и не вышло(((
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,486
BETAJIb [?]
и это всеравно не работает
Что значит не работает, с приведёнными данными у меня прекрасно всё работает.

Код:
$sHTML = '<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"><html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8"><link rel="stylesheet" href="styles/main1.css" type="text/css"><title>Великоземье</title></head><body bgcolor=#FFFFF0 text=#000000 link=#0000FF vlink=#0000FF><div style="text-align:left;font-family: Times New Roman, sans-serif, Tahoma;"><i><font color=#006400>Ты получил Панцирь.</font></i>
<i>Ты получил 590 монет.</i>
<i><font color=#8B4513>Из монстра выпала вещь Шлем[110].</font></i>
<i>Килер убил противника Брон.</i>
<i>[2293]Килер ранил противника Броненосец - 2184(5299) ож.</i>
<a href="main.php?blok=nzwo&do=nord&rnd=162419">Сев</a> | <a href="main.php?blok=nzwo&do=zuid&rnd=162419">Югъ</a> | <a href="main.php?blok=nzwo&do=west&rnd=162419">Зап</a> | <a href="main.php?blok=nzwo&do=ost&rnd=162419">Вос</a> | <a href="main.php?blok=karta&rnd=162419">Карта</a> [<a href="main.php?blok=pkarta&rnd=162419">^</a>]
<a href="main.php?blok=hero&rnd=162419">Герой</a><b> Килер</b>
<font color="green">Уровень 120 Рейтинг 0</font>
<font color="red">9456/9456</font> [<a class="red" href="main.php?blok=vost&do=1&rnd=162419">+</a>] <font color="blue"> 127/127</font> [<a class="blue" href="main.php?blok=vost&do=2&rnd=162419">+</a>]
Лошадь <b>Демон</b> <font color=#228B22>43/48</font>
<div style="position:relative;width:120px;height:5px;border: 1px solid #444444;background-color:#CD5C5C;" title="96.94%"><div style="background-color:#228B22;width:96.9478592855%;position:absolute;height:5px;left:0px;"></div></div>Монеты: 15778680
Координата <b>151/143</b> <a href="main.php?blok=statistika&do=1&rnd=162419">история</a>
<a href="main.php?blok=opis&rnd=162419">Местность: степь</a>
<a href="main.php?blok=domiki&rnd=162419">Здания(1)</a>
<a href="main.php?blok=veschy&rnd=162419">Вещи под ногами(2)</a>

<a href="main.php?blok=chat&rnd=162419">Чат</a>
<a href="main.php?blok=pochta&rnd=162419">Почта</a>
<a href="main.php?blok=main&rnd=162419">Обновить</a>
<a href="main.php?blok=menu&rnd=162419">Меню</a>

<div style="text-align:center;background:#436EEE;">=© Created by <font color=#FF0000>Идрит</font>, 2008=</div></body></html>'

$sRet = StringRegExpReplace($sHTML, '(?s).*</i>
<i><font color=#8B4513>((?-s).*?)</font></i>
<i>.*', '\1')
MsgBox(64, $sRet, $sRet)


Другое дело что $aHtml у тебя является массивом, а не строкой.
 

DarWiM

Продвинутый
Сообщения
527
Репутация
90
запусти эту страницу через IE, функцией _IEBodyReadHTML выведи в консоль полный код страницы и выложи его сюда (просто возможно ты подсунул не тот исходник..)
 

snoitaleR

AutoIT Гуру
Сообщения
855
Репутация
223
BETAJIb

Вот так работает...

Код:
; НАЧАЛО

 #Include <IE.au3>

 $ADDRESS=@ScriptDir&"\1.html"

 $oIE = _IECreate ($ADDRESS, 0, 0)
 $aHTML = _IEDocReadHTML($oIE)

 $B='<i><font color=#8B4513>'
 $E='</font>'

 $P=StringInStr($aHTML,$B)
 $aHTML=StringTrimLeft($aHTML,$P+StringLen($B)-1)
 $P=StringInStr($aHTML,$E)
 $aHTML=StringTrimRight($aHTML,StringLen($aHTML)-$P+1)

 MsgBox(64,"",$aHTML)

; КОНЕЦ


Но стоит заменить
Код:
$B='<i><font color=#8B4513>'
на
Код:
$B='</i>
<i><font color=#8B4513>'
скрипт не находит строку...
 
Автор
B

BETAJIb

Новичок
Сообщения
34
Репутация
0
спасибо большое)))остальный варинат норм работает))))
 
Автор
B

BETAJIb

Новичок
Сообщения
34
Репутация
0
помогите это еще с одним выбором,тоже почему то не выходит...и обьяснить почему там...
Код:
<div class="center">
 <div class="block"><strong>dfssdfs</strong> против <strong><a href="/game/relation/details/2337287">Саня66</a></strong></div>
  </div>
 <div class="partial_located_users"><div class="center">
  <table class="block">
    <tr><td class="tdc"><img alt="." src="/theme/touch/images/user_m.gif" /></td><td></td><td class="tdc"><img alt="." src="/theme/touch/images/user_m.gif" /></td></tr>
    <tr><td class="tdc">9</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_power.png" width="15" /></td><td class="tdc">10</td></tr>
    <tr><td class="tdc">7</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_protection.png" width="15" /></td><td class="tdc">11</td></tr>
    <tr><td class="tdc">5</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_dexterity.png" width="15" /></td><td class="tdc">5</td></tr>
    <tr><td class="tdc">5</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_skill.png" width="15" /></td><td class="tdc">5</td></tr>
    <tr><td class="tdc">5</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_weight.png" width="15" /></td><td class="tdc">5</td></tr>
  </table>
</div>
<ul class="block">
    <li class="strong">Другие параметры Саня66:</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_a_level.png" width="15" /> Уровень: 1</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_a_experience.png" width="15" /> Опыт: 1</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_campaign.png" width="15" /> Побед: 0</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_a_money.png" width="15" /> Награбил: 0</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_clans.png" width="15" /> Не состоит в ордене.</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_communities.png" width="15" /> Не состоит в дружине.</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_a_reputation.png" width="15" /> Слава: 0</li>
  </ul>
 </div>
 <div class="center">
      <a href="/game/fight/fight?drid=3716&amp;hash=99bc239d678df011aba65d962e689ead&amp;level=1&amp;opponent_id=2337287&amp;time=1331462021" class="button_medium">Сражаться</a>
    </div>
нужно выбрать цыфри :
Код:
<td class="tdc">9</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_power.png" width="15" /></td><td class="tdc">10</td></tr>
тута нужно 9 и 10...ну и все остальные аналогично...
 

sngr

AutoIT Гуру
Сообщения
1,011
Репутация
409
Код:
#include 'array.au3'
$file=FileRead(@ScriptDir & '\123')
$str=StringRegExp($file,'<td class="tdc">(\d+)</td>',3)
_ArrayDisplay($str)
 
Автор
B

BETAJIb

Новичок
Сообщения
34
Репутация
0
не выходит...((( вот полный код страницы:
Код:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
 
 
<html xmlns="http://www.w3.org/1999/xhtml"  xml:lang="rus" lang="rus">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <meta name="description" content="" />
  <meta name="keywords" content="" />
  <meta NAME="webmoney.attestation.label" CONTENT="webmoney attestation label#A289D95B-C6DA-40D8-B7D4-355B89E53622" />
 
  <!-- start iphone / android support -->
  <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=3.0;" />
  <!--<link rel="apple-touch-icon" href="http://mgero.mobi/apple-touch-icon.png" />-->
  <!-- end iphone support -->
  
  <link rel="icon" href="/favicon.gif" type="image/gif" />
  <link rel="shortcut icon" href="/favicon.gif" type="image/gif" />
 
  <title>Герои</title>
  
    <link href="/theme/touch/stylesheets/style.css" rel="stylesheet" type="text/css" />
    <link href="/theme/touch/stylesheets/custom_pages.css" rel="stylesheet" type="text/css" />
  
 
  
 
  <script type="text/javascript">
 
    var _gaq = _gaq || [];
    _gaq.push(['_setAccount', 'UA-27789194-1']);
    _gaq.push(['_setDomainName', 'mgero.mobi']);
    _gaq.push(['_setAllowLinker', true]);
    _gaq.push(['_trackPageview']);
 
    (function() {
      var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
      ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
      var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
 
  </script>
</head>
 
<body >
 
  
 
  
 
  <!-- notifications -->
  
      
        <div id="notifications_block" class="notifications_block">
          <table>
            
            
              
                <tr class="notification">
                  <td valign="top"><img alt="." height="15" src="/theme/touch/images/icons/icon_post_events_unread.png" width="15" /></td>
                  <td>
                    
                      Произошли новые события. <a href="/game/message/events">Проверь!</a> <a href="/game/fight/find?hide_unread_events=1">[закрыть]</a>
                    
                  </td>
                </tr>
              
            
          </table>
        </div>
      
 
  <!-- HEADER -->
  <div id="header">
    
    <a href="/game">
      <img alt="." id="logo" src="/theme/touch/images/logo.gif" />
    </a>
 <div class='info'>
<div class="icons">
            <div class="body">
              <span><a href="/game/user"><img alt="." height="15" src="/theme/touch/images/icons/icon_user.png" width="15" /> <strong>dfssdfs</strong></a></span> 
            <span><a href="/game/task/details/new_level"><img alt="." height="15" src="/theme/touch/images/icons/icon_header_level.png" title="Уровень" width="15" />1</a></span>
            <span><a href="/game/profile"><img alt="." height="15" src="/theme/touch/images/icons/icon_header_health.png" title="Здоровье" width="15" />100</a></span>
            
            <span><a href="/game/exchange"><img alt="." height="15" src="/theme/touch/images/icons/icon_header_money.png" title="Серебро" width="15" />332</a></span>
            <span><a href="/game/exchange"><img alt="." height="15" src="/theme/touch/images/icons/icon_header_staff2.png" title="Кристаллы" width="15" />0</a></span>
            <span><a href="/game/staff"><img alt="." height="15" src="/theme/touch/images/icons/icon_header_staff.png" title="Золото" width="15" />150</a></span>
            <span><a href="/game/campaign"><img alt="." height="15" src="/theme/touch/images/icons/icon_header_fights.png" title="Кол-во боев" width="15" />3/3</a></span>
            <span><a href="/game/chat"><img alt="." height="15" src="/theme/touch/images/icons/icon_header_time.png" title="Таймер" width="15" />00:00</a></span>
            </div>
          </div>
        
    </div>
    
  </div>
  <!-- HEADER END -->
 
  <!-- CONTENT -->
  <div id="content">
      <div class="page"><div class="page_game_fight"><div class="page_game_fight_find">
        
  <div class="header"><h1>Дуэль</h1></div>
 
  
 
  <div class="center">
 
    <div class="block"><strong>dfssdfs</strong> против <strong><a href="/game/relation/details/2334897">Gemeir55</a></strong></div>
  </div>
  <div class="partial_located_users"><div class="center">
  <table class="block">
    <tr><td class="tdc"><img alt="." src="/theme/touch/images/user_m.gif" /></td><td></td><td class="tdc"><img alt="." src="/theme/touch/images/user_m.gif" /></td></tr>
    <tr><td class="tdc">9</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_power.png" width="15" /></td><td class="tdc">6</td></tr>
    <tr><td class="tdc">7</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_protection.png" width="15" /></td><td class="tdc">6</td></tr>
    <tr><td class="tdc">5</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_dexterity.png" width="15" /></td><td class="tdc">5</td></tr>
    <tr><td class="tdc">5</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_skill.png" width="15" /></td><td class="tdc">5</td></tr>
    <tr><td class="tdc">5</td><td><img alt="." height="15" src="/theme/touch/images/icons/icon_a_weight.png" width="15" /></td><td class="tdc">5</td></tr>
  </table>
</div>
 
 
  <ul class="block">
    <li class="strong">Другие параметры Gemeir55:</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_a_level.png" width="15" /> Уровень: 1</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_a_experience.png" width="15" /> Опыт: 1</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_campaign.png" width="15" /> Побед: 0</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_a_money.png" width="15" /> Награбил: 0</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_clans.png" width="15" /> Не состоит в ордене.</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_communities.png" width="15" /> Не состоит в дружине.</li>
    <li><img alt="." height="15" src="/theme/touch/images/icons/icon_a_reputation.png" width="15" /> Слава: 0</li>
  </ul>
 
</div>
 <div class="center">
      <a href="/game/fight/fight?drid=1248&amp;hash=4ffc4758dc17cbc0887ed148abfa50de&amp;level=1&amp;opponent_id=2334897&amp;time=1331463257" class="button_medium">Сражаться</a>
    </div>
  <ul class="navigation">
     <li><a href="/game/fight?level=1&amp;nc=1331463258"><span class="body"><img alt="." height="15" src="/theme/touch/images/icons/icon_fight_next.png" width="15" />Следующий</span></a></li>
    <li><a href="/game/gym"><span class="body"><img alt="." height="15" src="/theme/touch/images/icons/icon_gym.png" width="15" />К Друиду</span></a></li>
    <li><a href="/game/campaign?level=1"><span class="body"><img alt="." height="15" src="/theme/touch/images/icons/icon_campaign.png" width="15" />Дуэль</span></a></li>
  </ul>
 
 
      </div></div></div>
  <div class="content_separator"></div>
  <ul class="navigation">
    <li><a href="/game"><span class="body"><img alt="." height="15" src="/theme/touch/images/icons/icon_home.png" width="15" />Главная</span></a></li>
    <li><a href="/game/user"><span class="body"><img alt="." height="15" src="/theme/touch/images/icons/icon_user.png" width="15" />Герой</span></a></li>
    <li><a href="/game/chat"><span class="body"><img alt="." height="15" src="/theme/touch/images/icons/icon_chat.png" width="15" />Чат</span></a></li>
    <li><a href="/game/message"><span class="body"><img alt="." height="15" src="/theme/touch/images/icons/icon_post_unread.png" width="15" />Почта</span></a></li>
    <li><a href="/game/staff"><span class="body"><img alt="." height="15" src="/theme/touch/images/icons/icon_a_staff.png" width="15" />Золото</span></a></li>
  </ul>
</div>
  <!-- CONTENT END -->
  <!-- FOOTER -->
 <div id="footer">
    <div class="separator"></div>
<div class="links">
  <a href="/game/relation/find_users">Поиск</a>
       <a href="/game/forum">Форум</a> 
      <a href="/visitor/help">Помощь</a> 
    <a href="/visitor/rules">Правила</a> 
    <a href="/game/message/support">Поддержка</a> 
      <a href="/game/config">Настройки</a> 
    <a href="/game/logout">Выйти</a>
    <div><img alt="." height="15" src="/theme/touch/images/icons/icon_header_clock.png" title="translation missing: rus, views, navigation, footer, clock" width="15" />14:54:18</div>
 </div>
<div class="bottom_footer">
 <a href="http://meni.mobi" class="button_big_red">Другие игры</a>
 <div class="text">
  <a href="/visitor/about_game">Об игре</a> 
  <a href="/user_agreement.html">Соглашение</a> 
  

  &copy; 2012 Герои

   Студия <a href="http://meni.mobi" >meni.mobi</a> Все права защищены.
   </div>
<div class="partial_navigation_footer_share">
  <div class="footer_share">
    В закладки <a href="http://mgero.mobi/game/fight/find" >mgero.mobi</a>. Мы <a href="http://m.vk.com/club34613277" class="vk_group">В Контакте</a> 
<a href="http://vk.com/share.php?url=http://mgero.mobi/game/fight/find" class="vk_share">Сохранить</a>
  </div>
</div>
</div>
 </div>
 </body>
</html>
 

sngr

AutoIT Гуру
Сообщения
1,011
Репутация
409
Код:
#include 'array.au3'
$file=FileRead(@ScriptDir & '\123')
$str=StringRegExp($file,'(?i)<td class="tdc">(\d+)',3)
_ArrayDisplay($str)
попробуй так.
 

Asshaker

Знающий
Сообщения
150
Репутация
17
2 раза прочел тему, не могу понять чего ты хочешь добиться?

если достать
Код:
<td class="tdc">5</td>
то

Код:
$oIE=_IEAttach('IE Win Title')
$oTDs=_IETagNameGetCollection($oIE,'TD')
For $oTD in $oTDs
	If $oTD.classname=='tdc' Then
		MsgBox(0,0,$oTD.innertext)
	EndIf
Next
 
Автор
B

BETAJIb

Новичок
Сообщения
34
Репутация
0
второй вариант работает)))ну а первый викидывает код всей страницы...вот мне интересно почему так?
и еще вопрос как сделать что б переменные заносились в массив(не очень еще знаю функции связаные с этим),я делал как на php:
Код:
$i=0

For $oTD in $oTDs
    If $oTD.classname=='tdc' Then
		$i=$i+1
		$arr[$i]=$oTD.innertext
        MsgBox(0,0,$oTD.innertext)
    EndIf
Next
MsgBox(0,0,$arr[3])
но не работает...
 

Asshaker

Знающий
Сообщения
150
Репутация
17
Код:
Dim $i=0
Dim $Arr[10]
$oIE=_IEAttach('IE Win Title')
$oTDs=_IETagNameGetCollection($oIE,'TD')
For $oTD in $oTDs
    If $oTD.classname=='tdc' Then
        $Arr[$i]=$oTD
        $i+=1
        MsgBox(0,0,$oTD.innertext)
    EndIf
Next


посмотри мои темы, там куча таких примеров. Включая клики по ссылкам и кнопочкам.
З.Ы. Учти что _IETagNameGetCollection почему то воспринимает теги в верхнем регистре.
а class это classname
 
Автор
B

BETAJIb

Новичок
Сообщения
34
Репутация
0
выкидывает ошибку:
$Arr[$i]=$oTD
^ERROR
Error: Array varibable incorrect number of subscripts or subscripts dimension range exceeded.


Добавлено:
Сообщение автоматически объединено:

это понял...там просто индексов 14 должно быть...


Добавлено:
Сообщение автоматически объединено:

Код:
Dim $i=0
Dim $Arr[14]
$oIE=_IEAttach('Герои')
$oTDs=_IETagNameGetCollection($oIE,'TD')
For $oTD in $oTDs
    If $oTD.classname=='tdc' Then
        $Arr[$i]=$oTD
        $i+=1
        
    EndIf
Next
_ArrayDisplay($Arr)

сделал вот так...а массив почему то пустой(((


Добавлено:
Сообщение автоматически объединено:

и это уже не нужно...
ошибка сдесь была:
Код:
$Arr[$i]=$oTD.innertext
 

ggzgamer

Осваивающий
Сообщения
134
Репутация
23
Странно, но у меня нормально работает _IETagNameGetCollection() и в нижнем регистре.
 
Верх