|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] извлечь строчку из HTML |
|
[решено] извлечь строчку из HTML
|
Ветеран Сообщения: 553 |
Профиль | Отправить PM | Цитировать Помогите разобраться ...нужно извлечь 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 Лазил по мануалу и по темам кое что понял но ничего неполучается ... мож кто поможет а ? |
|
Отправлено: 03:23, 03-05-2009 |
Старожил Сообщения: 215
|
Профиль | Отправить PM | Цитировать $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 |
Отправлено: 11:27, 03-05-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать $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) |
------- Отправлено: 11:36, 03-05-2009 | #3 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Я вобщем сам маленько разобрался ... дело в том что нужно выудить КОД из текстового документа в который записан 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 Что я написал нетак ?? неработает .... |
Отправлено: 12:42, 03-05-2009 | #4 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата FlatX007:
Цитата FlatX007:
#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 |
|||
------- Отправлено: 16:27, 03-05-2009 | #5 |
Ветеран Сообщения: 553
|
Профиль | Отправить PM | Цитировать Creat0R - Спасибо, вы как всегда великолепны
а offset я скопировал из мануала - хотел выяснить как работает функция ... StringRegExp Вобщем теперь разберусь по образцу. |
Отправлено: 17:31, 03-05-2009 | #6 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - как извлечь строки без html | user171078 | Программирование и базы данных | 0 | 21-01-2010 23:29 | |
CMD/BAT - [решено] Как прочесть из файла .txt только первую строчку текста. | Sdib121 | Скриптовые языки администрирования Windows | 6 | 15-08-2009 14:26 | |
[решено] Вставить строчку из одного txt в оределённое место другого txt | ZeroCrash | AutoIt | 7 | 13-07-2009 07:35 | |
MySQL - [решено] Извлечь данные одним запросом | Strange_V | Программирование и базы данных | 4 | 20-02-2008 23:18 |
|