Что нового

Простой парсер HTML кода HTMLFILE

Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Re: Простой парсер HTML кода

CreatoR [?]
$oHTML.body.InnerHtml = "<p id='test'>Hi!</p><p id='0'>buy</p>"
Уточнение, так можно сделать, если не нужен <head>

Код:
$document = ObjCreate('HTMLFILE')
$html = "<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=UTF-8""></head><body><div>hello</div><p id='test'>Hi!</p><p id='0'>buy</p></body></html>"
$document.body.InnerHtml = $html
;~ $document.write($html)
ConsoleWrite($document.documentElement.outerHTML & @CRLF)


Через innerHtml
Код:
<html><head></head><body><div>hello</div><p id="test">Hi!</p><p id="0">buy</p></body></html>
Через write
Код:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><div>hello</div><p id="test">Hi!</p><p id="0">buy</p></body></html>
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Простой парсер HTML кода

inververs [?]
Уточнение, так можно сделать, если не нужен <head>
Head может и нужен, но что делать если скрипт зависает с $document.write($html)?
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Re: Простой парсер HTML кода

CreatoR [?]
Head может и нужен, но что делать если скрипт зависает с $document.write($html)?
Еще может зависнуть из-за ActiveX... Может зависнуть из-за любого диалога или предупреждения.
К примеру:
Код:
<html><head><body><script>alert(0);</script></body></html>
, пока не закроешь, будет ждать.
Тут такое же поведения, как и в браузере, поэтому любо запрещать выполнения JS, либо перед записью чистить от скриптов, стилей, cddata, фреймов итп.

Garrett [?]
IMHO это из-за JS скриптов. В частности document.write.
+1
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Простой парсер HTML кода

Хорошо, тогда как по отключать все эти обработчики?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Простой парсер HTML кода

В общем пришлось выпиливать скрипты из Html, надеюсь найдётся более практичный метод.
Кстати, это хороший способ получать исходник страницы после обработки...

Вот если бы ещё научится подставлять другой движок IE, без привязки к системному.

AlenaSa [?]
Скопировал и вставил код на главную страничкуindex.html в середине кода
Зачем?
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Re: Простой парсер HTML кода

CreatoR [?]
А есть методы для этого?
Для IE я перед загрузкой страницы пишу в реестр что бы включить
Код:
RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\', '1400', 'REG_DWORD', 0)

Код:
RegWrite('HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3\', '1400', 'REG_DWORD', 3)

и что бы отключить. Может поможет.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Простой парсер HTML кода

У меня вот так вроде получилось:

Код:
With $oHtml
			.Open
			.Write($sHTML)
			.Close
		EndWith
		
		$oScripts = $oHtml.Scripts
		
		For $oScript In $oScripts
			$oScript.RemoveNode
		Next


inververs [?]
Помогло однако :smile:.
 
Автор
inververs

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Re: Простой парсер HTML кода

CreatoR [?]
Помогло однако
smiley.gif
.
Ну и славно, только я не уверен будет ли в x64 работать. Кто бы проверил? :whistle:


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

CreatoR [?]
У меня вот так вроде получилось:
Лучше очищать регуляркой перед записью, т.к когда метод write заканчивает запись, то начинается строится DOM и в фоне закачиваются/выполнятся скрипты, картинки, стили, и можно не успеть удалить (или удалить не все), так как все будет асинхронно.

А что бы страница полностью сформировалась, после write нужен sleep, или другой метод проверки. (событие ondocumentcompleate тут не отловить)/ Поэтому если хотите получить всю сформированную страницу, то придется научится определять когда же она полностью готова (document.readyState тоже не работает).
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: Простой парсер HTML кода

inververs [?]
будет ли в x64 работать
Работает.

все будет асинхронно
А это нельзя отключить? я про асинхронность, я помню было что то типа .asynch = false...

придется научится определять когда же она полностью готова
DOMContentLoaded тоже не отловить?
 

araneon

Новичок
Сообщения
59
Репутация
0
Ребят а как таким методом можно спарсить данные из таблиц на странице?
Вот пример таблицы, нужно достать числа типа 7794, 9316, 6703 и т.д.
Код:
<table cellspacing="0" cellpadding="3" bordercolor="gray" border="1">
<tbody><tr class="listhdr">
<td width="90"><font size="2">!!T_G_!!</font>
</td>
<td width="120" align="center" class="listhdr"><font size="2">
1
</font></td>
<td width="120" align="center" class="listhdr"><font size="2">
2
</font></td>
<td width="120" align="center" class="listhdr"><font size="2">
3
</font></td>
</tr>
<tr>
<td valign="top" align="left" class="rowodd">
<font size="2">
Status
</font>
</td>
<td align="center" style="background-color:#ffff77;" class="listhdr"><img border="0" src="tg.gif">

<font size="2" color="black">
Alarm (High Level)
</font></td>
<td align="center" style="background-color:#ffff77;" class="listhdr"><img border="0" src="tg.gif">

<font size="2" color="black">
Alarm (High Level)
</font></td>
<td align="center" style="background-color:#ffff77;" class="listhdr"><img border="0" src="tg.gif">

<font size="2" color="black">
Alarm (High Level)
</font></td>
</tr>
<tr>
<td valign="top" align="left" class="roweven">
<font size="2">
Product
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
</tr>
<tr>
<td valign="top" align="left" class="rowodd">
<font size="2">
Volume
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2"><iframe width="100" height="103" frameborder="0" src="tankfrm.htm?vol=55&amp;wat=0&amp;col=6B8E23"></iframe><table cellspacing="0" cellpadding="0">
<tbody><tr valign="bottom" height="20"><td>
<font size="2">
7794 L</font>
</td>
</tr>
</tbody></table>
</font></td>
<td valign="top" align="center" class="rowodd"><font size="2"><iframe width="100" height="103" frameborder="0" src="tankfrm.htm?vol=44&amp;wat=0&amp;col=6B8E23"></iframe><table cellspacing="0" cellpadding="0">
<tbody><tr valign="bottom" height="20"><td>
<font size="2">
9316 L</font>
</td>
</tr>
</tbody></table>
</font></td>
<td valign="top" align="center" class="rowodd"><font size="2"><iframe width="100" height="103" frameborder="0" src="tankfrm.htm?vol=47&amp;wat=0&amp;col=6B8E23"></iframe><table cellspacing="0" cellpadding="0">
<tbody><tr valign="bottom" height="20"><td>
<font size="2">
6703 L</font>
</td>
</tr>
</tbody></table>
</font></td>
</tr>
<tr>
<td valign="top" align="left" class="roweven">
<font size="2">
Capacity
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">14124 L</font></td>
<td valign="top" align="center" class="roweven"><font size="2">20821 L</font></td>
<td valign="top" align="center" class="roweven"><font size="2">14149 L</font></td>
</tr>
<tr>
<td valign="top" align="left" class="rowodd">
<font size="2">
Water
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">0 L</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">12 L</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">8 L</font></td>
</tr>
<tr>
<td valign="top" align="left" class="roweven">
<font size="2">
Last
Update
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">2016-02-20 07:51</font></td>
<td valign="top" align="center" class="roweven"><font size="2">2016-02-20 07:51</font></td>
<td valign="top" align="center" class="roweven"><font size="2">2016-02-20 07:51</font></td>
</tr>
<tr>
<td valign="top" align="left" class="rowodd">
<font size="2">
Alarm
Text(s)
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">
 </font></td>
<td valign="top" align="center" class="rowodd"><font size="2">
 </font></td>
<td valign="top" align="center" class="rowodd"><font size="2">
 </font></td>
</tr>
<tr>
<td valign="top" align="left" class="roweven">
<font size="2">
Product
Level
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">1181.8 mm</font></td>
<td valign="top" align="center" class="roweven"><font size="2">1368.2 mm</font></td>
<td valign="top" align="center" class="roweven"><font size="2">1043.3 mm</font></td>
</tr>
<tr>
<td valign="top" align="left" class="rowodd">
<font size="2">
Water
Level
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">0.0 mm</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">1.6 mm</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">0.2 mm</font></td>
</tr>
<tr>
<td valign="top" align="left" class="roweven">
<font size="2">
Gross
Observed
Volume
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">7794 L</font></td>
<td valign="top" align="center" class="roweven"><font size="2">9304 L</font></td>
<td valign="top" align="center" class="roweven"><font size="2">6695 L</font></td>
</tr>
<tr>
<td valign="top" align="left" class="rowodd">
<font size="2">
Gross
Standard
Volume
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">7935 L</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">9475 L</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">6818 L</font></td>
</tr>
<tr>
<td valign="top" align="left" class="roweven">
<font size="2">
Ullage
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">6330 L </font></td>
<td valign="top" align="center" class="roweven"><font size="2">11505 L </font></td>
<td valign="top" align="center" class="roweven"><font size="2">7446 L </font></td>
</tr>
<tr>
<td valign="top" align="left" class="rowodd">
<font size="2">
Temperature
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2"> 5.2 °C</font></td>
<td valign="top" align="center" class="rowodd"><font size="2"> 4.7 °C</font></td>
<td valign="top" align="center" class="rowodd"><font size="2"> 5.1 °C</font></td>
</tr>
<tr>
<td valign="top" align="left" class="roweven">
<font size="2">
Density
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">735.560 kg/m<sup>3</sup></font></td>
<td valign="top" align="center" class="roweven"><font size="2">744.815 kg/m<sup>3</sup></font></td>
<td valign="top" align="center" class="roweven"><font size="2">738.146 kg/m<sup>3</sup></font></td>
</tr>
<tr>
<td valign="top" align="left" class="rowodd">
<font size="2">
Mass
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">5837 kg</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">7057 kg</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">5032 kg</font></td>
</tr>
<tr>
<td valign="top" align="left" class="roweven">
<font size="2">
Last
Delivery
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
<td valign="top" align="center" class="roweven"><font size="2">5103 L
2016-01-18 23:44</font></td>
</tr>
</tbody></table>
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Код:
Local $oHTML = ObjCreate("HTMLFILE")
$oHTML.Write(FileRead(@ScriptDir & "\index.html"))

Local $iNumber, $oFonts, $oTables2 = $oHTML.getElementsByTagName("table").item(0).getElementsByTagName("table")
For $oTable In $oTables2
	$oFonts = $oTable.getElementsByTagName("font")
	For $oFont In $oFonts
		$iNumber = StringRegExpReplace($oFont.innerText, '[\D]', '')
		ConsoleWrite( $iNumber & @CRLF)
	Next
Next
 

araneon

Новичок
Сообщения
59
Репутация
0
alex33 Спасибо огромное, а не подскажешь как быть если нужно парсить не из файла, а со страницы, данные с которой выводятся только после ввода логина и пароля.
На страницу могу попасть по такой ссылке http://admin:blum:[email protected]/opstat.htm?tg=1&frmW=1256&frmH=841
Пытаюсь сделать так:
Код:
Local $oHTML = ObjCreate("HTMLFILE")
$bData = InetRead('http://admin:[email protected]/opstat.htm?tg=1&frmW=1256&frmH=841', 1)
$oHTML.Write($bData)

Local $iNumber, $oFonts, $oTables2 = $oHTML.getElementsByTagName("table").item(0).getElementsByTagName("table")
For $oTable In $oTables2
    $oFonts = $oTable.getElementsByTagName("font")
    For $oFont In $oFonts
        $iNumber = StringRegExpReplace($oFont.innerText, '[\D]', '')
        ConsoleWrite( $iNumber & @CRLF)
    Next
Next

и получаю
Код:
Local $iNumber, $oFonts, $oTables2 = $oHTML.getElementsByTagName("table").item(0).getElementsByTagName("table")
Local $iNumber, $oFonts, $oTables2 = $oHTML.getElementsByTagName("table").item(0)^ ERROR
 

araneon

Новичок
Сообщения
59
Репутация
0
CreatoR Спасибо.
Но тогда ничего не выводится.
Если изменить
Код:
.item(0)
на
Код:
.item(1)
то выводит все цифры из всей таблицы.
 

araneon

Новичок
Сообщения
59
Репутация
0
То же ничего не выводит. :scratch:


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

Вот вся страница которая выводится в консоли если использовать такой код:

Код:
Local $oHTML = ObjCreate("HTMLFILE")
$bData = BinaryToString(InetRead('http://admin:[email protected]/opstat.htm?tg=1&frmW=1256&frmH=841', 1), 4)
ConsoleWrite( $bData & @CRLF)



Код:
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css">
<script language="JavaScript" type="text/JavaScript">

function getStringVar(st){
  var temp = self.document.location.href;
  if(temp.indexOf(st) >= 0){
    temp =
      temp.substring((temp.indexOf(st)+
      (st.length+1)), temp.length);
    temp =
      temp.substring(0, (((temp.indexOf('&') >= 0)?
      temp.indexOf('&'):temp.length)));
  }else{
    temp = '';
  }
  return unescape(temp);
}

function getNumberVar(st){
  var res = parseInt(getStringVar(st));
  return ((isNaN(res))?0:res)
}

function reloader(){
    var X, Y;
    var W, H;
    var indW, indH;
    var temp = self.location.href;
    if(typeof window.pageXOffset != 'undefined'){
        X = window.pageXOffset;
        Y = window.pageYOffset;
    }else{
        if((!window.document.compatMode)||
          (window.document.compatMode == 'BackCompat')){
            X = window.document.body.scrollLeft;
            Y = window.document.body.scrollTop;
        }else{
            X =
              window.document.documentElement.scrollLeft;
            Y =
              window.document.documentElement.scrollTop;
        }
    }
    var indX = temp.indexOf('xScroll');
    if(indX > 0){
        temp = temp.substring(0, (indX-1))+
               ((temp.indexOf('&', (indX+7)) >= 0)?
               temp.substring(temp.indexOf('&',(indX+7)), temp.length):'');
    }
    var indY = temp.indexOf('yScroll');
    if(indY > 0){
        temp = temp.substring(0, (indY-1))+
               ((temp.indexOf('&', (indY+7)) >= 0)?
               temp.substring(temp.indexOf('&',(indY+7)), temp.length):'');
    }
    if (self.innerWidth)
      {
        W = self.innerWidth;
        H = self.innerHeight;
      }
    else if (document.documentElement && document.documentElement.clientWidth)
      {
        W = document.documentElement.clientWidth;
        H = document.documentElement.clientHeight;
      }
    else if (document.body)
      {
        W = document.body.clientWidth;
        H = document.body.clientHeight;
      }
    var indW = temp.indexOf('frmW');
    if(indW > 0)
      {
        temp = temp.substring(0, (indW-1))+
               ((temp.indexOf('&', (indW+4)) >= 0)?
               temp.substring(temp.indexOf('&',(indW+4)), temp.length):'');
      }
    var indH = temp.indexOf('frmH');
    if(indH > 0)
      {
        temp = temp.substring(0, (indH-1))+
               ((temp.indexOf('&', (indH+4)) >= 0)?
               temp.substring(temp.indexOf('&',(indH+4)), temp.length):'');
      }
    temp = temp + ((temp.indexOf('?') > 0)?'&':'?')+'xScroll='+X+'&yScroll='+Y;
    temp = temp + ((temp.indexOf('?') > 0)?'&':'?')+'frmW='+W+'&frmH='+H;
    window.document.location.replace(temp);

}

function frmdataOnload(){
    var X, Y;
    var frmW, frmH;
    var W, H;
    var temp = self.location.href;

    frmW = getNumberVar('frmW');
    frmH = getNumberVar('frmH');
    if (frmW == 0 || frmH == 0)
      {
        if (self.innerWidth)
          {
            W = self.innerWidth;
            H = self.innerHeight;
          }
        else if (document.documentElement && document.documentElement.clientWidth)
          {
            W = document.documentElement.clientWidth;
            H = document.documentElement.clientHeight;
          }
        else if (document.body)
          {
            W = document.body.clientWidth;
            H = document.body.clientHeight;
          }
        window.document.location.replace(temp + 
                                         ((temp.indexOf('?') > 0)?'&':'?') + 'frmW='+W+'&frmH='+H);
      }

    X = getNumberVar('xScroll');
    Y = getNumberVar('yScroll');
    if((X > 0)||(Y > 0)){
        if((top.opera)&&(typeof window.pageYOffset != 'undefined')){
            window.pageYOffset = Y;
            window.pageXOffset = X;
        }else if((window.document.compatMode)&&
                  (window.document.compatMode != 'BackCompat')){
            window.document.documentElement.scrollLeft = X;
            window.document.documentElement.scrollTop = Y;
        }else if((window.document.body)&&
              (typeof window.document.body.scrollTop != 'undefined')){
            window.document.body.scrollLeft = X;
            window.document.body.scrollTop = Y;
        }else{
            window.scrollTo(X, Y);
        }
    }
    setTimeout('reloader()', 100 * 1000);
}

</script>
</head>
<body rightmargin=0 leftmargin=0 topmargin=0 onload="frmdataOnload();">
<table width="100%">
<tr>
<td class=hdr>
<big><big>Operational Status</big></big>
</td>
</tr>
</table>
<table height="85%" width="100%">
<tr>
<td valign="top" align="left" class=tdmain>
<table width="100%">
  <tr>
    <td><font size="1">Last update: 2016-03-02 10:31:24 <a href="webprefs.htm" title="Set Refresh Rate">(Auto/100 sec)</a> <a href="/opstat.htm?tg=1">Refresh</a> <a href="/opstat.htm?tg=1" target="_blank">New Window</a></font>
    </td>
  </tr>
  <tr>
    <td align="left">
<table cellpadding="3" cellspacing="0" border="1" bordercolor="gray" width="100%">
<tr class="listhdr">
<td align="center"><b><font size="2">61038031</font></b></td>
</tr>
<tr>
<td align="center" class="roweven"><font size="2"> <a href="opstat.htm?frmW=1256&frmH=841">Quick</a> <a href="opstat.htm?fp=1&frmW=1256&frmH=841">Fuelling Point</a> <b>Tank Gauge</b> <a href="opstat.htm?pp=1&frmW=1256&frmH=841">Price Pole</a> <a href="opstat.htm?ept=1&frmW=1256&frmH=841">Terminal</a> <a href="opstat.htm?wp=1&frmW=1256&frmH=841">Wash Point</a> <a href="opstat.htm?pos=1&frmW=1256&frmH=841">POS</a> <a href="opstat.htm?all=1&frmW=1256&frmH=841">All</a> </font></td></tr>
</table>
    </td>
  </tr>
  <tr>
    <td>
<table cellpadding="3" cellspacing="0" border="1" bordercolor="gray">
<tr class="listhdr">
<td width="90"><font size="2">Tank Gauge</font>
</td>
<td align="center" width="120" class="listhdr"><font size="2">
1
</font></td>
<td align="center" width="120" class="listhdr"><font size="2">
2
</font></td>
<td align="center" width="120" class="listhdr"><font size="2">
3
</font></td>
</tr>
<tr>
<td align="left" valign="top" class="rowodd">
<font size=2>
Status
</font>
</td>
<td align="center" class="listhdr" style="background-color:#ffff77;"><img src="tg.gif" border="0"></br>
<font size=2 color="black">
Alarm (High Level)
</font></td>
<td align="center" class="listhdr" style="background-color:#ffff77;"><img src="tg.gif" border="0"></br>
<font size=2 color="black">
Alarm (High Level)
</font></td>
<td align="center" class="listhdr" style="background-color:#ffff77;"><img src="tg.gif" border="0"></br>
<font size=2 color="black">
Alarm (High Level)
</font></td>
</tr>
<tr>
<td align="left" valign="top" class="roweven">
<font size=2>
Product
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
</tr>
<tr>
<td align="left" valign="top" class="rowodd">
<font size=2>
Volume
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2"><iframe src="tankfrm.htm?vol=62&wat=0&col=6B8E23" height="103" width="100" frameborder="0"></iframe><table cellpadding="0" cellspacing="0">
<tr height="20" valign="bottom"><td>
<font size=2>
8852 L</font>
</td>
</tr>
</table>
</font></td>
<td valign="top" align="center" class="rowodd"><font size="2"><iframe src="tankfrm.htm?vol=30&wat=0&col=6B8E23" height="103" width="100" frameborder="0"></iframe><table cellpadding="0" cellspacing="0">
<tr height="20" valign="bottom"><td>
<font size=2>
6384 L</font>
</td>
</tr>
</table>
</font></td>
<td valign="top" align="center" class="rowodd"><font size="2"><iframe src="tankfrm.htm?vol=55&wat=0&col=6B8E23" height="103" width="100" frameborder="0"></iframe><table cellpadding="0" cellspacing="0">
<tr height="20" valign="bottom"><td>
<font size=2>
7820 L</font>
</td>
</tr>
</table>
</font></td>
</tr>
<tr>
<td align="left" valign="top" class="roweven">
<font size=2>
Capacity
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">14124 L</font></td>
<td valign="top" align="center" class="roweven"><font size="2">20821 L</font></td>
<td valign="top" align="center" class="roweven"><font size="2">14149 L</font></td>
</tr>
<tr>
<td align="left" valign="top" class="rowodd">
<font size=2>
Water
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">0 L</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">12 L</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">0 L</font></td>
</tr>
<tr>
<td align="left" valign="top" class="roweven">
<font size=2>
Last
Update
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">2016-03-02 10:31</font></td>
<td valign="top" align="center" class="roweven"><font size="2">2016-03-02 10:31</font></td>
<td valign="top" align="center" class="roweven"><font size="2">2016-03-02 10:31</font></td>
</tr>
<tr>
<td align="left" valign="top" class="rowodd">
<font size=2>
Alarm
Text(s)
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">
 </font></td>
<td valign="top" align="center" class="rowodd"><font size="2">
 </font></td>
<td valign="top" align="center" class="rowodd"><font size="2">
 </font></td>
</tr>
<tr>
<td align="left" valign="top" class="roweven">
<font size=2>
Product
Level
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">1306.6 mm</font></td>
<td valign="top" align="center" class="roweven"><font size="2">1019.0 mm</font></td>
<td valign="top" align="center" class="roweven"><font size="2">1175.9 mm</font></td>
</tr>
<tr>
<td align="left" valign="top" class="rowodd">
<font size=2>
Water
Level
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">0.0 mm</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">1.4 mm</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">0.0 mm</font></td>
</tr>
<tr>
<td align="left" valign="top" class="roweven">
<font size=2>
Gross
Observed
Volume
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">8852 L</font></td>
<td valign="top" align="center" class="roweven"><font size="2">6372 L</font></td>
<td valign="top" align="center" class="roweven"><font size="2">7820 L</font></td>
</tr>
<tr>
<td align="left" valign="top" class="rowodd">
<font size=2>
Gross
Standard
Volume
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">9005 L</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">6480 L</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">7956 L</font></td>
</tr>
<tr>
<td align="left" valign="top" class="roweven">
<font size=2>
Ullage
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">5272 L </font></td>
<td valign="top" align="center" class="roweven"><font size="2">14437 L </font></td>
<td valign="top" align="center" class="roweven"><font size="2">6329 L </font></td>
</tr>
<tr>
<td align="left" valign="top" class="rowodd">
<font size=2>
Temperature
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2"> 6.1 &deg;C</font></td>
<td valign="top" align="center" class="rowodd"><font size="2"> 5.9 &deg;C</font></td>
<td valign="top" align="center" class="rowodd"><font size="2"> 6.0 &deg;C</font></td>
</tr>
<tr>
<td align="left" valign="top" class="roweven">
<font size=2>
Density
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2">730.178 kg/m<sup>3</sup></font></td>
<td valign="top" align="center" class="roweven"><font size="2">743.647 kg/m<sup>3</sup></font></td>
<td valign="top" align="center" class="roweven"><font size="2">730.325 kg/m<sup>3</sup></font></td>
</tr>
<tr>
<td align="left" valign="top" class="rowodd">
<font size=2>
Mass
</font>
</td>
<td valign="top" align="center" class="rowodd"><font size="2">6575 kg</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">4819 kg</font></td>
<td valign="top" align="center" class="rowodd"><font size="2">5810 kg</font></td>
</tr>
<tr>
<td align="left" valign="top" class="roweven">
<font size=2>
Last
Delivery
</font>
</td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
<td valign="top" align="center" class="roweven"><font size="2"> </font></td>
<td valign="top" align="center" class="roweven"><font size="2">5103 L
2016-01-18 23:44</font></td>
</tr>
</table>
    </td>
  </tr>
</table>
</td>
</tr>
</table>
</body>
</html>
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
araneon [?]
Вот вся страница которая выводится в консоли если использовать такой код
Ну в таком случае HTMLFILE здесь не причём.
Результат который тебе нужен генерируется скриптами, а для их выполнения нужен обработчик.

Пример:

Код:
#include <IE.au3>

$oIE = _IECreate('http://admin:[email protected]/opstat.htm?tg=1&frmW=1256&frmH=841', 0, 0)
$sHtml = _IEBodyReadHTML($oIE)
_IEQuit($oIE)

$oHTML = ObjCreate("HTMLFILE")
$oHTML.Write($sHtml)

Local $iNumber, $oFonts, $oTables2 = $oHTML.getElementsByTagName("table").item(0).getElementsByTagName("table")

For $oTable In $oTables2
    $oFonts = $oTable.getElementsByTagName("font")
    For $oFont In $oFonts
        $iNumber = StringRegExpReplace($oFont.innerText, '[\D]', '')
        ConsoleWrite( $iNumber & @CRLF)
    Next
Next
 

araneon

Новичок
Сообщения
59
Репутация
0
CreatoR Спасибо, но так выдаёт ошибку
Код:
"C:\Program Files\AutoIt3\Include\IE.au3" (272) : ==> The requested action with this object has failed.:
$oObject.navigate($sUrl)
$oObject^ ERROR
 
Верх