Что нового

Как получить данные из элемента на сайте?

saraconor

Новичок
Сообщения
379
Репутация
2
Допустим курс доллара в гугле, элемент такой: <span class="DFlfde" data-precision="2" data-value="65.67" id="knowledge-currency__tgt-amount">65,67</span>
Как не открывая сайта получить значение курса доллара?

Вот так получилось:
Код:
#include <Inet.au3>
#include <Array.au3>
local $K_DL, $K_EU
$sURL = "https://finance.rambler.ru/currencies/USD/"
$sHTML = INetRead($sURL)
$sHTML = BinaryToString($sHTML, 4)
$sHTML = StringSplit($sHTML, @CRLF)
for $i = 1 to ubound($sHTML)
if $sHTML[$i] = '<div class="finance-exchange-rate__money">$</div>' then
$K_DL = $sHTML[$i + 2]
EndIf
if $sHTML[$i] = '<div class="finance-exchange-rate__money">€</div>' then
$K_EU = $sHTML[$i + 2]
ExitLoop
EndIf
next

MsgBox(0, '', "Курс доллара: " & $K_DL & " руб." & @CR & "Курс евро: " & $K_EU  & " руб.")


Скрипт берет страницу целиком и потом перебирает его, ища нужные строки, а можно как-нибудь сделать так чтобы скрипт сразу читал нужную строку на странице?
 
A

Alofa

Гость
Код:
$sURL = "https://finance.rambler.ru/currencies/USD/" ; только для этой страницы.
$sHTML = BinaryToString(InetRead($sURL), 4)
If Not $sHTML Then Exit
$aArray = StringRegExp($sHTML, '>(?:\$|€)</div>\D+?([\d.]+)', 3)
If Not @error Then MsgBox(0, '', "Курс доллара на завтра: " & $aArray[0] & " руб." & @CR & "Курс евро на завтра: " & $aArray[1] & " руб.")
 
Автор
S

saraconor

Новичок
Сообщения
379
Репутация
2
Alofa сказал(а):
Код:
$sURL = "https://finance.rambler.ru/currencies/USD/" ; только для этой страницы.
$sHTML = BinaryToString(InetRead($sURL), 4)
If Not $sHTML Then Exit
$aArray = StringRegExp($sHTML, '>(?:\$|€)</div>\D+?([\d.]+)', 3)
If Not @error Then MsgBox(0, '', "Курс доллара на завтра: " & $aArray[0] & " руб." & @CR & "Курс евро на завтра: " & $aArray[1] & " руб.")
Очень большая просьба, вы можете разбить эту формулу поиска на кусочки и объяснить что каждый из них делает?
 
A

Alofa

Гость
В html ищем следующую последовательность знаков:
>она должна начинаться с этого знака
(?:\$|€)далее должен следовать знак доллара или евро
</div>после должна быть эта группа знаков
\D+?любой знак - не цыфра, повторенный 1 или более раз
([\d.]+) искомая группа (в скобках) , которая может состоять только из цыфр и точек повторяющихся 1 или более раз
 
Автор
S

saraconor

Новичок
Сообщения
379
Репутация
2
Спасибо вам большое.
 
Верх