-
AutoIt
(
http://forum.oszone.net/forumdisplay.php?f=103)
извлечь строчку из HTML
Помогите разобраться ...нужно извлечь 4 элемента из HTML кода
Я так понял это делается функцией StringRegExp
Строка:
Код:
</tr><tr bgcolor=#f0f1f3 align=center><td ><font class=z11 size=-1>user</font></td><td ><font class=z11 size=-1>462956552413 *(рандомное число)</font></td><td><font class=z11 size=-1>Активна</font></td><td><font class=z11 size=-1><b>90.79 руб.</b></font></td><td><font class=z11 size=-1>15.58 (Мб)</font></td><td><font class=z11 size=-1>200 (Мб)</font></td><td><font class=z11 size=-1>184.42 (Мб)</font></td></tr><tr bgcolor=#97999c align=center>
Нужны элементы из кода
* 90.79 руб.
* 15.58
* 200
* 184.42
Лазил по мануалу и по темам кое что понял но ничего неполучается ... мож кто поможет а ? :angel:
|
$Sp - нужный ебе шаблон для поиска
Результаты будут в Result[0] Result[1] Result[2] Result[3]
Код:
$Text ='</tr><tr bgcolor=#f0f1f3 align=center><td ><font class=z11 size=-1>user</font></td><td ><font class=z11 size=-1>462956552413 *(рандомное число)</font>'
$Text &='</td><td><font class=z11 size=-1>Активна</font></td><td><font class=z11 size=-1><b>90.79 руб.</b></font></td><td><font class=z11 size=-1>15.58 (Мб)</font>'
$Text &='</td><td><font class=z11 size=-1>200 (Мб)</font></td><td><font class=z11 size=-1>184.42 (Мб)</font></td></tr><tr bgcolor=#97999c align=center>'
$SP= 'Активна<.*?<b>(.*?)</b>.*?size=-1>(.*?)</font>.*?size=-1>(.*?)</font>.*?size=-1>(.*?)</font>'
$Result = StringRegExp($Text, $Sp, 1)
for $i = 0 to UBound($Result) - 1
Msgbox(4096, $i, $Result[$i])
Next
|
Код:
$sHtml_Var = "</tr><tr bgcolor=#f0f1f3 align=center><td ><font class=z11 size=-1>user</font></td><td ><font class=z11 size=-1>462956552413 *(рандомное число)</font></td><td><font class=z11 size=-1>Активна</font></td><td><font class=z11 size=-1><b>90.79 руб.</b></font></td><td><font class=z11 size=-1>15.58 (Мб)</font></td><td><font class=z11 size=-1>200 (Мб)</font></td><td><font class=z11 size=-1>184.42 (Мб)</font></td></tr><tr bgcolor=#97999c align=center>"
$aRet = StringRegExp($sHtml_Var, '(?i).*?</td><td><font class=z11 size=-1>(.*?)</font>.*?', 3)
$sVar_1 = StringRegExpReplace($aRet[1], "<b>(.*)</b>", "\1")
$sVar_2 = StringRegExpReplace($aRet[2], "(.*) \(.*\)", "\1")
$sVar_3 = StringRegExpReplace($aRet[3], "(.*) \(.*\)", "\1")
$sVar_4 = StringRegExpReplace($aRet[4], "(.*) \(.*\)", "\1")
ConsoleWrite($sVar_1 & @CRLF & $sVar_2 & @CRLF & $sVar_3 & @CRLF & $sVar_4 & @CRLF)
|
Я вобщем сам маленько разобрался ... дело в том что нужно выудить КОД из текстового документа в который записан HTML код.
Файл stat.tmp содержит HTML код страницы.
Написал вот что:
Код:
#include <file.au3>
$nOffset = 1
$Random = Random(100,1000000)
$TempRandom = @TempDir & '\' & $Random
DirCreate($TempRandom)
FileCopy(@TempDir & '\' & "stat.tmp", $TempRandom & '\' & "balanse.txt")
$file = FileOpen($TempRandom & '\' & "balanse.txt",0)
$HTML = FileRead($file)
$f = StringStripWS($HTML, 8)
While 1
$array = StringRegExp($f, '<td><font class=z11 size=-1><b>(.*?)</b></font></td><td><font class=z11 size=-1>', 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
Вроде $f = StringStripWS($HTML, 8) - это лишнее ..
Что я написал нетак ?? неработает .... :(
|
Цитата:
Цитата FlatX007
Вроде $f = StringStripWS($HTML, 8) - это лишнее »
|
Конечно, оно заменит все пробелы в переменной.
А зачем там цикл и offset?
Код:
#include <File.au3>
$Temp_Dir = _TempFile()
FileCopy(@TempDir & '\stat.tmp', $Temp_Dir & '\balanse.txt', 1+8) ;8 это чтобы при копировании папка создавалась
$sHTML = FileRead($Temp_Dir & '\balanse.txt')
$avArray = StringRegExp($sHTML, '(?i).*?<td><font class=z11 size=-1>(.*?)</font>.*?', 3)
For $i = 1 To UBound($avArray) - 1
$avArray[$i] = StringRegExpReplace($avArray[$i], "\A<b>|</b>\z|( \(.*?\))\z", "")
MsgBox(0, "RegExp Test with Option 1 - " & $i, $avArray[$i])
Next
|
Creat0R - Спасибо, вы как всегда великолепны :)
а offset я скопировал из мануала - хотел выяснить как работает функция ... StringRegExp
Вобщем теперь разберусь по образцу.
|
Время: 18:56.
© OSzone.net 2001-