Автор Тема: [Автоматизация] Парсинг сайта УТМ для ЕГАИС  (Прочитано 314 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Glass4217 [?]

  • Новичок
  • *
  • Сообщений: 29
  • Репутация: 0
  • Пол: Мужской
    • Награды
Добрый день уважаемые форумчане.
Опишу ситуацию и задачу которую я сам себе поставил.
Работаю в организации продающей алкоголь в нескольких торговых точках.
На каждой торговой точке стоит "сервер" УТМ на linux ubuntu, ключ используемый для подписи документов JaCarta.
Периодически возникает проблема с этим ключем, он выпадает в ошибку "Проблема RSA"(как только ключ отвалился алкоголь не продать) или перестает отправлять чеки(можно не отправлять 3 суток потом перестает продавать алкоголь), состояние ключа или статус чеков можно отследить на "сайте" генерируемый этим сервером и доступному по адресу http://ip-сервера:8080.
Решение в принципе простое, сервер перезагрузить и система начинает работать.

Собственно я накропал скрипт, отлавливающий со страницы статус ошибки или что чеки не отправлялись.

Код: AutoIt [Выделить]
#Region                                                                             ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=..\..\..\Program Files (x86)\AutoIt3\Icons\MyAutoIt3_Green.ico
#AutoIt3Wrapper_Res_Description=Диагностика состояние RSA и проверка даты отправки чеков. Рекомендуется чтобы в ОС был установлен IE11.
#AutoIt3Wrapper_Res_Fileversion=0.6
#AutoIt3Wrapper_Res_Language=1049
#EndRegion                                                                          ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <GUIConstantsEx.au3>
#include <Constants.au3>
#include <WindowsConstants.au3>
#include <IE.au3>
#include <WinAPIEx.au3>
#include <Date.au3>

Global $hDesktop = DllCall("User32.dll", "int", "OpenDesktop", "str", "Default", "int", 0, "int", 0, "int", 0x100) ;переменная для определения не заблокирован ли компьютер

While 1                                                                             ;Начало бесконечного цикла провери серверов УТМ
    _ieclose()                                                                      ;Закрыть все процессы IE
    Global $iputm = IniReadSection("UTM.ini", "UTM IP")                             ;Получить данные блока "UTM IP" из ini файла
    Global $UTMlogin = IniReadSection("UTM.ini", "UTM login")                       ;Получить список логинов для УТМ
    Global $UTMpassword = IniReadSection("UTM.ini", "UTM passwords")                ;Получить список паролей УТМ
    _utmtest()                                                                      ;Основная функция првоерки серверов УТМ
    Global $iputm = 0                                                               ;Очистка переменных для обновления настроек в случае редактирования файла ini
    Global $UTMlogin = 0
    Global $UTMpassword = 0
WEnd

Func _utmtest()                                                                     ;Проверка состояния сервера УТМ
    For $j = 1 To $iputm[0][0]                                                      ;Проходим с первой до последней строки файла ini и выбираем оттуда нужные данные
        Local $oIE, $sHtml, $sUrl ="http://192.168."&$iputm[$j][1]&":8080/"         ;URL построенные на основе переменных из файла ini
        $oIE = _IECreate($sUrl,0,0)                                                 ;Создаем скрытую страницу с выбранным адресом
        _IELoadWait($oIE)                                                           ;Дожидаемся полной загрузки страницы
        $sHtml = _IEBodyReadHTML($oIE)                                              ;Возвращает код HTML-документа заключённый в тегах <body>
        For $x = 3 to 30                                                            ;Проходим по датам от 3 до 30 дней назад для поиска зависших чеков УТМ
            $stempDate = _DateAdd( 'd',-$x, _NowCalcDate())                         ;Переменная обозначения даты для поиска зависших чеков УТМ
            $datetext = BinaryToString($stempDate)                                  ;Перевести формата даты в текст для более удобной работы
            $date = StringReplace($datetext, '/', '-')                              ;Изменение разделителей даты с "/" на "-"
            If StringInStr($sHtml, "Чеки не отправлялись с "&$date) > 0 Or StringInStr($sHtml, "Чеки не отправлялись с "&$date) > 0 Then      ;Ищем текст на странице
                _plink($iputm[$j][1])                                               ;Данная функция выполняет перезагрузку сервера УТМ
                _logcheck($iputm[$j][1],$iputm[$j][0],$date)                        ;Сохранить в лг данные о выполненой операции
            Else
            EndIf
        Next
            If StringInStr($sHtml, "Проблемы с RSA") > 0 Or StringInStr($sHtml, "Проблемы с RSA") > 0 Then                                        ;Ищем текст на странице
                _plink($iputm[$j][1])                                               ;Данная функция выполняет перезагрузку сервера УТМ
                _logrsa($iputm[$j][1],$iputm[$j][0])                                ;Сохранить в лг данные о выполненой операции
            Else
            EndIf
            _IEQuit($oIE)                                                           ;Закрыть созданное окно IE
            sleep(200)
            _ieclose()                                                              ;Функция избыточного завершения IE если предыдущая команда не справилась
    Next
EndFunc

Func _ieclose()                                                                     ;Закрываем все процессы ИЕ
    $ieprocess = ProcessList('iexplore.exe')                                        ;Возвращает двумерный массив, содержащий список выполняемых процессов (имя и PID).
    For $ie = 1 To $ieprocess[0][0]                                                 ;$ieprocess[0][0] - это количество процессов
        If ProcessExists($ieprocess[$ie][1]) Then ProcessClose($ieprocess[$ie][1])  ;Если процесс существует, то закрываем его
    Next
    $ieprocess2 = ProcessList('iexplore.exe *32')                                   ;Возвращает двумерный массив, содержащий список выполняемых процессов (имя и PID).
    For $ie2 = 1 To $ieprocess2[0][0]                                               ;$ieprocess2[0][0] - это количество процессов
        If ProcessExists($ieprocess2[$ie2][1]) Then ProcessClose($ieprocess2[$ie2][1]);Если процесс существует, то закрываем его
    Next
EndFunc

Func _plink($addres)                                                                ;Скрытая перезагрузка УТМ
    $sshkeypid = Run(@ComSpec & " /c echo yes |plink.exe 192.168."& $addres , "", @SW_HIDE)                                                     ;Автоматическое добавление ключа ssh при его отсутсвтии в системе
    sleep(4000)
    ProcessClose($sshkeypid)
    For $z = 1 To $UTMlogin[0][0]
        For $y = 1 To $UTMpassword[0][0]
            Opt("SendKeyDelay", 100)
            $PPID = Run("plink.exe 192.168."& $addres, "", @SW_HIDE, $STDIN_CHILD)
            Sleep(10000)
            StdinWrite($PPID, $UTMlogin[$z][1]&@CRLF)
            Sleep(5000)
            StdinWrite($PPID, $UTMpassword[$y][1]&@CRLF)
            Sleep(15000)
            StdinWrite($PPID, "sudo reboot"&@CRLF)
            Sleep(10000)
            StdinWrite($PPID, $UTMpassword[$y][1]&@CRLF)
            Sleep(10000)
            ProcessClose($PPID)
        Next
    Next
EndFunc

Func _logcheck($iputm1,$iputm2,$date)                                               ;Лог чеков
    FileWrite ("UTMlogbad.txt", @YEAR&"-"&@MON&"-"&@MDAY&" "&@HOUR&":"&@MIN&":"&@SEC&@TAB&"192.168."&$iputm1&@TAB&$iputm2&@TAB&@TAB&@TAB&" Чеки не отправлялись с "&$date&", попытка перезагрузки выполнена"&@CRLF)
    FileClose ("UTMlogbad.txt")
EndFunc

Func _logrsa($iputm1,$iputm2)                                                       ;Лог RSA
    FileWrite ("UTMlogbad.txt", @YEAR&"-"&@MON&"-"&@MDAY&" "&@HOUR&":"&@MIN&":"&@SEC&@TAB&"192.168."&$iputm1&@TAB&$iputm2&@TAB&@TAB&@TAB&" Проблемы с RSA, попытка перезагрузки выполнена"&@CRLF)
    FileClose ("UTMlogbad.txt")
EndFunc
 


В скрипте я использую данные полученные из INI-файла UTM.ini
в нем идет набор данных для теста и авторизации на сервере
[UTM IP]
Магазин 1 = 141.12
Магазин 2 = 142.12
.....
Магазин 42 = 195.12
[UTM login]
Логин для сервера утм1 = egais
логин для сервера утм2 = egais2
[UTM passwords]
пароль для утм1 = 123456
пароль для утм2 = 321654
пароль для утм3 = 123654
в файл лога данные пишутся только о выполненных попытках перезагрузки с причиной
2018-04-12 00:02:03 192.168.142.12 Магазин 2 Чеки не отправлялись с 2018-04-09, попытка перезагрузки выполнена
2018-04-12 00:06:42 192.168.148.12 Магазин 8 Чеки не отправлялись с 2018-04-09, попытка перезагрузки выполнена
2018-04-12 09:55:48 192.168.152.12 Магазин 12 Проблемы с RSA, попытка перезагрузки выполнена

В принципе работает, но хотелось бы избавиться от запуска IE.
код страницы с начала страницы до необходимых данных прикладываю
<!DOCTYPE html>
<!-- saved from url=(0026)http://192.168.195.12:8080/ -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>УТМ</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="./УТМ_files/bootstrap.min.css" rel="stylesheet">
<link href="./УТМ_files/bootstrap-table.css" rel="stylesheet">
<link href="./УТМ_files/utm.css" rel="stylesheet">
<script src="./УТМ_files/jquery.min.js.Без названия"></script><style></style>
<script src="./УТМ_files/bootstrap.min.js.Без названия"></script>
<script src="./УТМ_files/bootstrap-table.js.Без названия"></script>
<script src="./УТМ_files/bootstrap-table-ru-RU.min.js.Без названия"></script>
<script src="./УТМ_files/utm.js.Без названия"></script>
</head>
<body>
<div class="container">
<h2 id="title-eagle"><img src="./УТМ_files/eagle.png" alt="Двуглавый орел">&nbsp;&nbsp;Универсальный транспортный модуль</h2>
<div id="wrapper">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="http://192.168.195.12:8080/#home">Главная</a></li>
<li><a data-toggle="tab" href="http://192.168.195.12:8080/#menu1">Сертификаты</a></li>
<li><a data-toggle="tab" href="http://192.168.195.12:8080/#menu2">XML схемы</a></li>
<li><a data-toggle="tab" href="http://192.168.195.12:8080/#menu3">История</a></li>
<li><a data-toggle="tab" href="http://192.168.195.12:8080/#menu4">Исходящие</a></li>
<li><a data-toggle="tab" href="http://192.168.195.12:8080/#menu5">Входящие</a></li>
</ul>
</div>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h4>Информация об установленном УТМ</h4>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Версия ПО</div><div class="col-md-8 col-sm-8 col-lg-8">2.1.6</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Продуктивный контур</div><div class="col-md-8 col-sm-8 col-lg-8">RSA сертификат pki.fsrar.ru соответствует контуру</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Статус лицензии</div><div class="col-md-8 col-sm-8 col-lg-8">Лицензия на вид деятельности действует</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Дата создания БД</div><div class="col-md-8 col-sm-8 col-lg-8">2017-11-17 10:01:02.507</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Неотправленные чеки</div><div class="col-md-8 col-sm-8 col-lg-8">Отсутствуют неотправленные чеки</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Сертификат RSA</div><div class="col-md-8 col-sm-8 col-lg-8">Действителен с 2018-02-19 12:37:56 +1000 по 2018-12-10 23:14:58 +1000</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Сертификат ГОСТ</div><div class="col-md-8 col-sm-8 col-lg-8">Действителен с 2018-02-19 09:21:22 +1000 по 2019-05-19 09:21:22 +1000</div></div>
</div>

Вместо "продуктивный контур" появляется "Проблемы с RSA" а в поле "Отсутствуют неотправленные чеки" пишется "Чеки не отправлялись с %date%"

Моего скудного разума не хватает на "парсинг" сайта без открытия IE, буду благодарен за критику моей поделки и помощь в решении задачи.
Заранее спасибо.


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Апрель 12, 2018, 11:30:10 от Glass4217 »
Нам разум дал  стальные руки-крюки.

Русское сообщество AutoIt

[Автоматизация] Парсинг сайта УТМ для ЕГАИС
« Отправлен: Апрель 12, 2018, 10:02:48 »

Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 227
  • Репутация: 32
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Попробуйте  $sHtml получить через InetRead

Код: AutoIt [Выделить]
 Local $oIE, $sHtml, $sUrl ="http://192.168."&$iputm[$j][1]&":8080/"         ;URL построенные на основе переменных из файла ini
        $oIE = _IECreate($sUrl,0,0)                                                 ;Создаем скрытую страницу с выбранным адресом
        _IELoadWait($oIE)                                                           ;Дожидаемся полной загрузки страницы
        $sHtml = _IEBodyReadHTML($oIE)  

;вместо этого
$sHtml = BinaryToString(InetRead($sUrl, 1)) ;получаем html код страницы
;дальнейший парсинг нужных данных такой же
 


Оффлайн Glass4217 [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Попробуйте  $sHtml получить через InetRead

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

Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 227
  • Репутация: 32
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
А есть пример html, где присутствуют не отправленные чеки?

Русское сообщество AutoIt

Re: [Автоматизация] Парсинг сайта УТМ для ЕГАИС
« Ответ #3 Отправлен: Апрель 12, 2018, 16:24:52 »

Оффлайн Glass4217 [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
А есть пример html, где присутствуют не отправленные чеки?

<!DOCTYPE html>
<!-- saved from url=(0026)http://192.168.184.12:8080/ -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>УТМ</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="./УТМ2_files/bootstrap.min.css" rel="stylesheet">
<link href="./УТМ2_files/bootstrap-table.css" rel="stylesheet">
<link href="./УТМ2_files/utm.css" rel="stylesheet">
<script src="./УТМ2_files/jquery.min.js.Без названия"></script>
<script src="./УТМ2_files/bootstrap.min.js.Без названия"></script>
<script src="./УТМ2_files/bootstrap-table.js.Без названия"></script>
<script src="./УТМ2_files/bootstrap-table-ru-RU.min.js.Без названия"></script>
<script src="./УТМ2_files/utm.js.Без названия"></script>
</head>
<body>
<div class="container">
<h2 id="title-eagle"><img src="./УТМ2_files/eagle.png" alt="Двуглавый орел">&nbsp;&nbsp;Универсальный транспортный модуль</h2>
<div id="wrapper">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="http://192.168.184.12:8080/#home">Главная</a></li>
<li><a data-toggle="tab" href="http://192.168.184.12:8080/#menu1">Сертификаты</a></li>
<li><a data-toggle="tab" href="http://192.168.184.12:8080/#menu2">XML схемы</a></li>
<li><a data-toggle="tab" href="http://192.168.184.12:8080/#menu3">История</a></li>
<li><a data-toggle="tab" href="http://192.168.184.12:8080/#menu4">Исходящие</a></li>
<li><a data-toggle="tab" href="http://192.168.184.12:8080/#menu5">Входящие</a></li>
</ul>
</div>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h4>Информация об установленном УТМ</h4>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Версия ПО</div><div class="col-md-8 col-sm-8 col-lg-8">2.1.6</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Продуктивный контур</div><div class="col-md-8 col-sm-8 col-lg-8">RSA сертификат pki.fsrar.ru соответствует контуру</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Статус лицензии</div><div class="col-md-8 col-sm-8 col-lg-8">Лицензия на вид деятельности действует</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Дата создания БД</div><div class="col-md-8 col-sm-8 col-lg-8">2017-12-21 15:27:46.798</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Неотправленные чеки</div><div class="col-md-8 col-sm-8 col-lg-8">Чеки не отправлялись с 2018-04-13 10:10:00.000 +1000</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Сертификат RSA</div><div class="col-md-8 col-sm-8 col-lg-8">Действителен с 2018-01-08 12:08:02 +1000 по 2018-12-10 23:14:58 +1000</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Сертификат ГОСТ</div><div class="col-md-8 col-sm-8 col-lg-8">Действителен с 2017-12-11 09:32:17 +1000 по 2019-03-11 09:42:17 +1000</div></div>
</div>
отловил с сегодняшней датой

ловлю отдельно ошибку RSA


Внимание: Для просмотра прикреплённых файлов необходимо Войти или Зарегистрироваться
« Последнее редактирование: Апрель 13, 2018, 03:03:46 от Glass4217 »

Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 227
  • Репутация: 32
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Код: AutoIt [Выделить]
$sHtml = BinaryToString(InetRead($sUrl, 1))
$cheks = StringRegExp($sHtml, 'Неотправленные чеки<.div><div class="col-md-8 col-sm-8 col-lg-8">(.*)<.div><.div>', 3)
MsgBox(0, "", $cheks[0])
 


Оффлайн Glass4217 [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Код: AutoIt [Выделить]
$sHtml = BinaryToString(InetRead($sUrl, 1))
$cheks = StringRegExp($sHtml, 'Неотправленные чеки<.div><div class="col-md-8 col-sm-8 col-lg-8">(.*)<.div><.div>', 3)
MsgBox(0, "", $cheks[0])
 

видимо я не понял вашего посыла но при компиляции ваш код выдает ошибку
<!DOCTYPE html>
<!-- saved from url=(0026)http://192.168.15.12:8080/ -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>УТМ</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="./УТМ_files/bootstrap.min.css" rel="stylesheet">
<link href="./УТМ_files/bootstrap-table.css" rel="stylesheet">
<link href="./УТМ_files/utm.css" rel="stylesheet">
<script src="./УТМ_files/jquery.min.js.Без названия"></script>
<script src="./УТМ_files/bootstrap.min.js.Без названия"></script>
<script src="./УТМ_files/bootstrap-table.js.Без названия"></script>
<script src="./УТМ_files/bootstrap-table-ru-RU.min.js.Без названия"></script>
<script src="./УТМ_files/utm.js.Без названия"></script>
</head>
<body>
<div class="container">
<h2 id="title-eagle"><img src="./УТМ_files/eagle.png" alt="Двуглавый орел">&nbsp;&nbsp;Универсальный транспортный модуль</h2>
<div id="wrapper">
<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="http://192.168.129.9:8080/#home">Главная</a></li>
<li><a data-toggle="tab" href="http://192.168.15.12:8080/#menu1">Сертификаты</a></li>
<li><a data-toggle="tab" href="http://192.168.15.12:8080/#menu2">XML схемы</a></li>
<li><a data-toggle="tab" href="http://192.168.15.12:8080/#menu3">История</a></li>
<li><a data-toggle="tab" href="http://192.168.15.12:8080/#menu4">Исходящие</a></li>
<li><a data-toggle="tab" href="http://192.168.15.12:8080/#menu5">Входящие</a></li>
</ul>
</div>
<div class="tab-content">
<div id="home" class="tab-pane fade in active">
<h4>Информация об установленном УТМ</h4>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Версия ПО</div><div class="col-md-8 col-sm-8 col-lg-8">2.1.6</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-remove" aria-hidden="true"></span>Проблемы с RSA</div><div class="col-md-8 col-sm-8 col-lg-8">com.sun.xml.internal.ws.client.ClientTransportException: HTTP transport error: javax.net.ssl.SSLException: java.security.ProviderException: sun.security.pkcs11.wrapper.PKCS11Exception: CKR_FUNCTION_FAILED</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Продуктивный контур</div><div class="col-md-8 col-sm-8 col-lg-8">RSA сертификат pki.fsrar.ru соответствует контуру</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Статус лицензии</div><div class="col-md-8 col-sm-8 col-lg-8">Лицензия на вид деятельности действует</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Дата создания БД</div><div class="col-md-8 col-sm-8 col-lg-8">2017-11-20 11:43:28.025</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-info-sign" aria-hidden="true"></span>Неотправленные чеки</div><div class="col-md-8 col-sm-8 col-lg-8">Отсутствуют неотправленные чеки</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Сертификат RSA</div><div class="col-md-8 col-sm-8 col-lg-8">Действителен с 2018-01-10 15:52:25 +1000 по 2018-12-10 23:14:58 +1000</div></div>
<div class="info-line row"><div class="col-md-4 col-sm-4 col-lg-4"><span class="glyphicon glyphicon-ok" aria-hidden="true"></span>Сертификат ГОСТ</div><div class="col-md-8 col-sm-8 col-lg-8">Действителен с 2017-08-16 16:54:59 +1000 по 2018-11-16 17:04:59 +1000</div></div>
</div>
ошибка RSA

Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 227
  • Репутация: 32
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Я предположил, что вы её сами в свой код добавите и докрутите.
Вместо $sUrl подставьте готовую ссылку и проверьте что получается

Код: AutoIt [Выделить]
$sHtml = BinaryToString(InetRead("здесь ссылка для проверки", 1))
ConsoleWrite($sHtml) ;проверяем, что м ыполучили html
$cheks = StringRegExp($sHtml, 'Неотправленные чеки<.div><div class="col-md-8 col-sm-8 col-lg-8">(.*)<.div><.div>', 3) ;пытаемся выдернуть строку о чеках
MsgBox(0, "", $cheks[0])
 


Русское сообщество AutoIt

Re: [Автоматизация] Парсинг сайта УТМ для ЕГАИС
« Ответ #7 Отправлен: Апрель 13, 2018, 16:19:43 »

Оффлайн Glass4217 [?]

  • Новичок
  • *
  • Сообщений: 29

  • Автор темы
  • Репутация: 0
  • Пол: Мужской
    • Награды
Прошу прощения что долго не отвечал, отвлекся на другие задачи
Я предположил, что вы её сами в свой код добавите и докрутите.
Вместо $sUrl подставьте готовую ссылку и проверьте что получается

Про этот момент я догадался, но
Код: AutoIt [Выделить]
MsgBox(0, "", $cheks[0])
 

не работает
Код: AutoIt [Выделить]
MsgBox(0, "", $cheks)
 

работает но выдает один и тот же результат 1

Оффлайн hedji [?]

  • Осваивающий
  • **
  • Сообщений: 227
  • Репутация: 32
  • Пол: Мужской
    • Награды
  • Версия AutoIt: 3.3.14.0
Почитайте про StringRegExp
1 - означает, что он не нашел нужную строку, надо поиграться с регулярным выражением.

Русское сообщество AutoIt

Re: [Автоматизация] Парсинг сайта УТМ для ЕГАИС
« Ответ #9 Отправлен: Апрель 19, 2018, 08:56:57 »

 

Похожие темы

  Тема / Автор Ответов Последний ответ
0 Ответов
2187 Просмотров
Последний ответ Ноябрь 06, 2011, 18:41:46
от Garrett
3 Ответов
1754 Просмотров
Последний ответ Февраль 01, 2013, 21:14:34
от madmasles
0 Ответов
730 Просмотров
Последний ответ Май 08, 2014, 17:00:38
от madmasles
17 Ответов
4327 Просмотров
Последний ответ Июнь 26, 2014, 18:26:10
от cheslav
6 Ответов
2058 Просмотров
Последний ответ Август 11, 2015, 15:16:22
от Vovsla
1 Ответов
813 Просмотров
Последний ответ Сентябрь 16, 2016, 15:09:12
от pumbanirvana
0 Ответов
1344 Просмотров
Последний ответ Апрель 04, 2017, 19:19:53
от DOMINANT
26 Ответов
2000 Просмотров
Последний ответ Июль 28, 2017, 13:22:05
от hedji
3 Ответов
493 Просмотров
Последний ответ Сентябрь 22, 2017, 15:21:00
от xoop
1 Ответов
343 Просмотров
Последний ответ Январь 09, 2018, 01:16:52
от Vovsla