|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено]Получение переменной с HTML с помощью StringRegExpReplace |
|
[решено]Получение переменной с HTML с помощью StringRegExpReplace
|
Новый участник Сообщения: 43 |
Кусок кода с которого надо выловить число:
$KodHtml=_IEDocReadHTML ( $oIE ) $pattern="(?s).*?class=.?text_head3.?>(.*?)</td?.*" $Num = StringRegExpReplace($KodHtml, $pattern, "\1") ;$Num= Number($Num) ;MsgBox(0, "Good", $Num) ;for check If $Num>=50000 Then . . . EndIf Пытаюсь вытащить число 12, но что то не получается с $pattern , почему то записявается вся страница. Справку читал , но не понял (*,+,?, ...) и как избавиться от " . Заранее благодарю. |
|
Отправлено: 21:11, 21-07-2009 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата ikif:
<td align="center" valign="top" class="text_head3">518766</td> <td align="center" valign="top" class="text_head3">12</td> <td align="center" valign="top" class="text_head3">0</td> Конкретно только в этом случае $pattern='(?s).*<td align="center" valign="top" class="text_head3">(\d\d)</td>.*' Но это ненадежно... Поэтому требуется уточнение. |
|
------- Последний раз редактировалось beve, 21-07-2009 в 21:56. Отправлено: 21:45, 21-07-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать На странице только в этом месте подобный код.
1.За счет чего , берется 12 , а не 518766 ? Из-за \d\d ? 2.То что в $pattern должно быть в ' ' или " " ? По поводу постоянно ли присутствуют ли эти строки в коде: Тут постоянно. 3.Как бы это выглядило , если бы не постоянно ? |
Отправлено: 22:32, 21-07-2009 | #3 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Как я понял /d/d - 2 цифры.
Но это не всегда так, и первое и второе могут быть разные. И всё равно меседж показывает всю страничку. index.htm
#include <IE.au3> #include <Array.au3> #Include <String.au3> $oIE = _IECreate ("C:\Documents and Settings\Opetu\Desktop\index.htm") $KodHtml=_IEDocReadHTML ( $oIE ) $pattern='(?s).*<td align="center" valign="top" class="text_head3">(\d\d)</td>.*' $Num = StringRegExpReplace($KodHtml, $pattern, "\1") ;$Num= Number($Num) MsgBox(0, "Good", $Num) ![]() |
Последний раз редактировалось ikif, 21-07-2009 в 23:20. Отправлено: 22:53, 21-07-2009 | #4 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать на скриншоте TD, а ты в коде пишеш td...
Думаю тут в коде, так будет работать (код в шаблоне короче делать не стал, чтобы понятна была суть): $pattern='(?si).*class="text_head3">(?:.*)</td>.*?<td align="center" valign="top" class="text_head3">(.*)</td>.*?<td align="center" valign="top" class="text_head3">(?:.*)</td>.*' Цитата ikif:
Цитата ikif:
|
|||
------- Последний раз редактировалось beve, 22-07-2009 в 01:02. Отправлено: 00:11, 22-07-2009 | #5 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Полное содержимое файла index.htm :
Полное содержимое скрипта : #include <IE.au3> #include <Array.au3> #Include <String.au3> $oIE = _IECreate ("C:\Documents and Settings\Opetu\Desktop\index.htm") $KodHtml=_IEDocReadHTML ( $oIE ) $pattern='(?si).*class="text_head3">(?:.*)</td>.*?<td align="center" valign="top" class="text_head3">(.*)</td>.*?<td align="center" valign="top" class="text_head3">(?:.*)</td>.*' $Num = StringRegExpReplace($KodHtml, $pattern, "\1") ;$Num= Number($Num) MsgBox(0, "Good", $Num) ![]() ![]() В html td написано маленькими буквами |
Отправлено: 02:09, 22-07-2009 | #6 |
Старожил Сообщения: 307
|
Профиль | Отправить PM | Цитировать Цитата ikif:
$file=FileOpen ("C:\Documents and Settings\Opetu\Desktop\index.htm",0) $KodHtml=FileRead($file) FileClose($file) $pattern='(?s).*class="text_head3">(?:.*)</td>.*?<td align="center" valign="top" class="text_head3">(.*)</td>.*?<td align="center" valign="top" class="text_head3">(?:.*)</td>.*' $Num = StringRegExpReplace($KodHtml, $pattern, "\1") MsgBox(0, "Good", $Num) |
|
------- Отправлено: 03:34, 22-07-2009 | #7 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Для эксперементов сохранил эту страничку на Десктоп, а так она должна открываться в интернете.
$oIE = _IECreate ("C:\Documents and Settings\Opetu\Desktop\index.htm", 0) Нужного результата не принесло. ![]() |
Последний раз редактировалось ikif, 22-07-2009 в 09:16. Отправлено: 07:36, 22-07-2009 | #8 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Проблему решил, построив фильтр исходя из написаного в сообщении:
![]() Интересно что center меняется на middle. |
Отправлено: 10:15, 22-07-2009 | #9 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Реализация функций длины переменной, выделение подстроки с параметрами в переменной. | NiOl | Скриптовые языки администрирования Windows | 7 | 31-01-2019 19:58 | |
CMD/BAT - Получение полного доступа с помощью ICACL.EXE/CACL.EXE | Smarty | Скриптовые языки администрирования Windows | 7 | 06-09-2009 12:34 | |
[решено] Вытянуть содержание HTML тега с помощью регулярных выражений | aesir | AutoIt | 4 | 28-08-2009 21:22 | |
[решено] И снова stringRegExpReplace... | Twix1124 | AutoIt | 6 | 01-06-2009 03:49 | |
[решено] Хелп с StringRegExpReplace | xSpaiderx | AutoIt | 8 | 31-03-2009 23:16 |
|