Что нового

Как взять символы между тегами tbody

tar

Новичок
Сообщения
58
Репутация
0
Помогите.
Между тегами tbody, целая страница всякого хлама текста, нужны 4 символа после слова "код:" 53C7
Код:
<tbody><tr><td valign="top">
<h3>
Вы бла-бла-бла </h3>
бла-бла-бла бла-бла-бла
 код: <strong>53C7</strong>




Вы можете <strong>бла-бла-бла</strong>
бла-бла-бла бла-бла-бла
 бла-бла-бла</td>
</tr></tbody>
 

randal

Новичок
Сообщения
21
Репутация
4
Код:
$kod = StringRegExpReplace($text, "(?s).*код:\h<strong>(.*?)</strong>(?s).*", "\1")

в переменной $text - текст, в котором ищем
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
tar [?]
нужны 4 символа после слова "код:" 53C7
Код:
$sBody = _
	'<tbody><tr><td valign="top">' & @CRLF & _
	'<h3>' & @CRLF & _
	'Вы бла-бла-бла </h3>' & @CRLF & _
	'бла-бла-бла бла-бла-бла' & @CRLF & _
	'код: <strong>53C7</strong>' & @CRLF & _
	'
' & @CRLF & _
	'
' & @CRLF & _
	'Вы можете <strong>бла-бла-бла</strong>' & @CRLF & _
	'бла-бла-бла бла-бла-бла' & @CRLF & _
	' бла-бла-бла</td>' & @CRLF & _
	'</tr></tbody>'

$aCode = StringRegExp($sBody, '\s+код:\h*<strong>(.*?)</strong>', 3)

If Not @error Then
	MsgBox(64, @ScriptName, $aCode[0])
EndIf
 

ildar67

Новичок
Сообщения
10
Репутация
1
Есть такая строка: <span class="coupon__sell-highlight--1w9j0">1509<i class="icon--2PcX6 _icon_currency-kzt-white--2D2N8 coupon__icon-curr--3hrvl"></i></span>
подскажите как выдернуть 1509
Код:
$sBody = '<span class="coupon__sell-highlight--1w9j0">1509<i class="icon--2PcX6 _icon_currency-kzt-white--2D2N8 coupon__icon-curr--3hrvl"></i></span>'
$aCode = StringRegExp($sBody, '<span class="coupon__sell-highlight--1w9j0">(.*?)<i class="icon--2PcX6 _icon_currency-kzt-white--2D2N8 coupon__icon-curr--3hrvl"></i></span>', 3)
If Not @error Then
    MsgBox(64, @ScriptName, $aCode[0])
EndIf


пробую так, не получается
 
Последнее редактирование:

ildar67

Новичок
Сообщения
10
Репутация
1
так выводит, а с сайта нет, как узнать температуру?
Код:
#include <IE.au3>
$sHTML = BinaryToString(InetRead('http://https://yandex.kz'), 4)
$aCode = StringRegExp($sHTML, '<div class="weather__temp">(.*?)</div>', 3)
If Not @error Then
    MsgBox(64, @ScriptName, $aCode[0])
EndIf

Сообщение автоматически объединено:

разобрался
Код:
#include <IE.au3>
Local $oIE = _IECreate("https://yandex.kz")
Local $oTags = _IETagNameGetCollection($oIE, "div")
Local $aResults[1]
For $oTag In $oTags
    if $oTag.GetAttribute("class") == "weather__temp" Then
        MsgBox(4096, '', $oTag.innertext)
    EndIf
Next

подскажите как на mail.ru курс рубля выдернуть с таким кодом <p class="QSUXdld QSUXdCG QSUXdjV svelte-q537od"><span class="rate__icon-small rate__icon-small_rub svelte-q537od"></span> 5.96<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAM0lEQVQoU2NkYGD4D8QEASMpCoOBimOB+D0QPwVieSBWBGIpIL4FxLeBWB1kIlFgZCoEALL2BsPhdtgaAAAAAElFTkSuQmCC" class="QSUXdlr QSUXdlp QSUXdlB QSUXdlu QSUXdlP QSUXdl0 QSUXdlE" title="k7ssqqxxnt" alt="0fpwnlyd68e"></p>
делаю так, не получается
Код:
#include <IE.au3>
Local $oIE = _IECreate("https://mail.ru")
Local $oTags = _IETagNameGetCollection($oIE, "p")
Local $aResults[1]
For $oTag In $oTags
    if $oTag.GetAttribute("class") == "QSUXdld QSUXdCG QSUXdjV svelte-q537od" Then
        MsgBox(4096, '', $oTag.innertext)
    EndIf
Next
 
Последнее редактирование:

gunter123

Продвинутый
Сообщения
159
Репутация
69
...

Код:
#include "IE.au3"
$oIE = _IECreate('mail.ru')
$oElem = $oIE.document.getElementsByClassName('rate__icon-small_rub')[0]
If Not IsObj($oElem) Then Exit MsgBox(4096, '', 'Елемент не найден')
MsgBox(4096, '', 'Курс: ' & $oElem.parentElement.innerText)
 
Последнее редактирование:

ildar67

Новичок
Сообщения
10
Репутация
1
не работает, выдает ошибку
$oElem = $oIE.document.getElementsByClassName('rate__icon-small_rub')[0]
$oElem = $oIE.document.getElementsByClassName('rate__icon-small_rub')^ ERROR
->20:35:59 AutoIt3.exe ended.rc:1
Сообщение автоматически объединено:

изменил 3 строчку на
Код:
$oElem = $oIE.document.getElementsByClassName('rate__icon-small_rub').item(0)

gunter123, спасибо
Сообщение автоматически объединено:

хочу зациклить выполнение скрипта, чтобы работал после того как зайду на другой сайт и обратно при его выполнении
Код:
#include "IE.au3"
$oIE = _IECreate('mail.ru')
test()
Func test()
    While 1
    $oElem = $oIE.document.getElementsByClassName('rate__icon-small_rub').item(0)
    Sleep(1000)
    MsgBox(4096, '', 'Курс: ' & $oElem.parentElement.innerText)
    WEnd
EndFunc

выдает такую ошибку, подскажите как исправить
"C:\Users\user\Desktop\ajy2.au3" (25) : ==> The requested action with this object has failed.:
MsgBox(4096, '', '????: ' & $oElem.parentElement.innerText)
MsgBox(4096, '', '????: ' & $oElem^ ERROR
->02:19:59 AutoIt3.exe ended.rc:1
+>02:19:59 AutoIt3Wrapper Finished.
 
Последнее редактирование:

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
зайду на другой сайт и обратно
Код:
If IsObj($oElem) Then MsgBox(4096, '', 'Курс: ' & $oElem.parentElement.innerText)


Вы довольно сильно отклонились от темы, связанной с регулярными выражениями. Автоматизация браузеров обсуждается в другом разделе.
 
Верх