Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Обработка многострочного HTML кода с одинаковыми строчками.

Ответить
Настройки темы
[решено] Обработка многострочного HTML кода с одинаковыми строчками.

Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Нужно вытащить из HTML кода строчки выделенные красным, заготовки нет вообще потому, что всё остановилось на этом $sREAD_HTML = _INetGetSource('http://cstrike.***.net/monitoring/') - дальше StringRegExp после него пустой массив или вообще ничего
Сложность заключается в том, что темеже самыми тегами прописана статистика для других серверов их много.

Код: Выделить весь код
        <td>
          <img alt='' src='http://cstrike.****.net/monitoring/lgsl_files/other/icon_online.gif' title='ONLINE' />
        </td>

        <td title='GAME LINK' style='text-align:right'>
          192.168.0.101:27020
        </td>

        <td title='TritiumNet Left 4 Dead' style='text-align:left'>
             <a href='http://cstrike.****.net/monitoring/lgsl_files/../?s=4'><div style='width:100%; overflow:hidden; height:1.3em'>
           TritiumNet Left 4 Dead - <!----> Эта строчка не меняется !! 
          </div>
		  </a>
        </td>

        <td style='white-space:nowrap; text-align:left'>
          l4d_hospital01_apartment
        </td>

        <td style='white-space:nowrap; text-align:right'>
          0 / 10
        </td>
У меня вообще никаких мыслей по этому поводу. Хотябы вытащить карту и колличество игроков (последняя и пред последняя строчки выделенные красным)

Отправлено: 16:53, 27-11-2009

 

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
#include <Array.au3>

$sREAD_HTML = ClipGet() ;Это вместо _INetGetSource

$sPattern1 = "<td title='GAME LINK' style='text-align:right'>\s+(.*?)\s+</td>"
$sPattern2 = _
    "<td title='TritiumNet Left 4 Dead' style='text-align:left'>\s+<a href='.*'>" & _
    "<div style='width:100%; overflow:hidden; height:1.3em'>\s+(.*?)\s+</div>"
$sPattern3 = "<td style='white-space:nowrap; text-align:left'>\s+(.*?)\s+</td>"
$sPattern4 = "<td style='white-space:nowrap; text-align:right'>\s+(.*?)\s+</td>"

$aRet = StringRegExp($sREAD_HTML, '(?s)' & $sPattern1 & '.*' & $sPattern2 & '.*' & $sPattern3 & '.*' & $sPattern4, 3)

_ArrayDisplay($aRet)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:31, 27-11-2009 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Изображения
Тип файла: png Image00035.png
(21.4 Kb, 25 просмотров)

спасибо конечно ... но вот что там ... я сам не разберусь

Отправлено: 19:14, 27-11-2009 | #3


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
вот что там
Там то, что попадает под критерий шаблона. Я проверял на том тексте что в первом сообщений, с ним всё отлично работает (в массив попадают именно строки выделенные красным цветом).

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:56, 30-11-2009 | #4


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


Цитата FlatX007:
Сложность заключается в том, что темеже самыми тегами прописана статистика для других серверов их много. »
Строки то попадают , только с других серверов ....на этой странице прописана ещё статистика для пяти серверов.
Посмотри ПМ

Проблема решилась во так:
Код: Выделить весь код
#include <Array.au3>
#include <File.au3>
#include <INet.au3>

Dim $aReadHTML
Global $ifForStringSearch = False, $sNewFileHTML

$sURL_LINK = 'http://cstrike.*****.net/monitoring/'

$sTEMP_FILE = _TempFile()
$sTEMP_FILE2 = _TempFile()

$sREAD_HTML = _INetGetSource($sURL_LINK)
    If Not (@error) Then
        FileWrite($sTEMP_FILE, $sREAD_HTML)
        _FileReadToArray($sTEMP_FILE, $aReadHTML)
        For $i = 0 To UBound($aReadHTML) - 1
            $sForString = StringInStr( StringStripWS($aReadHTML[$i], 1), "192.168.0.101:27020")
            If $sForString = 1 Then
                $ifForStringSearch = $i
                ExitLoop
            EndIf
        Next

        If Not $ifForStringSearch = False Then
            For $i = $ifForStringSearch To $ifForStringSearch + 20
                $sNewFileHTML &= $aReadHTML[$i] & @CRLF
            Next
        EndIf

        FileWrite($sTEMP_FILE2, $sNewFileHTML)

        $sPattern3 = "<td style='white-space:nowrap; text-align:left'>\s+(.*?)\s+</td>"
        $sPattern4 = "<td style='white-space:nowrap; text-align:right'>\s+(.*?)\s+</td>"
        $aRet = StringRegExp(FileRead($sTEMP_FILE2), '(?s)' & $sPattern3 & '.*' & $sPattern4, 3)
        _ArrayDisplay($aRet)
    EndIf

FileDelete($sTEMP_FILE)
FileDelete($sTEMP_FILE2)

Отправлено: 16:15, 01-12-2009 | #5


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата FlatX007:
Проблема решилась во так »
Отлично, я вот только не понял для чего нужны временные файлы?

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community


Отправлено: 17:47, 01-12-2009 | #6


Аватара для FlatX007

Ветеран


Сообщения: 553
Благодарности: 87

Профиль | Отправить PM | Цитировать


По другому не получилось ... у меня. Я думаю если исправить то на работоспособность это не повлияет.

Отправлено: 23:42, 01-12-2009 | #7


Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата FlatX007:
По другому не получилось »
Код: Выделить весь код
#include <Array.au3>
#include <File.au3>
#include <INet.au3>

Dim $aReadHTML
Global $ifForStringSearch = False, $sNewFileHTML

$sURL_LINK = 'http://cstrike.*****.net/monitoring/'

$sREAD_HTML = _INetGetSource($sURL_LINK)

If Not @error Then
    $aReadHTML = StringSplit(StringStripCR($sREAD_HTML), @LF)

    For $i = 1 To UBound($aReadHTML) - 1
        $sForString = StringInStr(StringStripWS($aReadHTML[$i], 1), "192.168.0.101:27020")

        If $sForString = 1 Then
            $ifForStringSearch = $i
            ExitLoop
        EndIf
    Next

    If Not $ifForStringSearch = False Then
        For $i = $ifForStringSearch To $ifForStringSearch + 20
            $sNewFileHTML &= $aReadHTML[$i] & @CRLF
        Next
    EndIf

    $sPattern3 = "<td style='white-space:nowrap; text-align:left'>\s+(.*?)\s+</td>"
    $sPattern4 = "<td style='white-space:nowrap; text-align:right'>\s+(.*?)\s+</td>"
    $aRet = StringRegExp($sNewFileHTML, '(?s)' & $sPattern3 & '.*' & $sPattern4, 3)

    _ArrayDisplay($aRet)
EndIf

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:50, 02-12-2009 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Обработка многострочного HTML кода с одинаковыми строчками.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] StringRegExp. Вытаскивание повторяющихся кусков кода HTML. ikif AutoIt 7 06-12-2009 10:30
[решено] Разбор HTML-кода на логические части Мартиша Вебмастеру 9 20-06-2009 00:09
[решено] JavaScript. Генерация html-кода. System Failure Вебмастеру 3 20-07-2007 15:28
Просмотр HTML-кода в IE xkspy Хочу все знать 11 30-11-2006 16:40
оптимизатор HTML кода koresaram Вебмастеру 9 20-09-2003 03:46




 
Переход