#autoit 读取 'constantly changing' 字符串

#autoit Reading 'constantly changing' string

假设有一些 numbers/characters 在不断变化。

我的目标是读取 'inactive window':

下的那些值
#include <IE.au3>
Global $fb1 = _IECreate(https://www.google.ca/?gfe_rd=cr&ei=oPLYV6qlMMbM8ge3xqiYDg#q=tennis+racquet+price)

网球拍的价格可能会发生变化,我想了解一下价格。

我的愚蠢计划是:

  1. 获取$的位置并阅读右边的文字(如果可能的话)
  2. 找到行号并读取整个字符串以提取值
  3. 捕获从 $sport chek 的字符串,然后继续(如果可能)

inactive window全部失败!我通读了所有 _IE 函数和常规函数。

你能给我一些提示吗?

我认为最好使用隐形 IE window。您可以使用一个不活动的,然后将其最小化,但为什么要这么麻烦。

下面的代码将使用隐藏的 IE window 读取结果,因此它无法获得焦点。它查看 HTML classes 并获取名称和价格并将它们显示在消息框中。由于名称不完整,您的唯一标识符可能是 div class="pla-unit-title"

下的 link
#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
Global $fb1 = _IECreate("https://www.google.ca/?gfe_rd=cr&ei=oPLYV6qlMMbM8ge3xqiYDg#q=tennis+racquet+price",0,0)
sleep(2000);wait for all data to load
$fullHtml = _IEDocReadHTML ($fb1)

$racketNames = StringRegExp($fullHtml,"(?s)(?U)<div class=""pla-unit-title.*>(.*)</div>",3)
$racketPrices = StringRegExp($fullHtml,"(?s)(?U)<div class=""_QD.*>(.*)</div>",3)

_IEQuit($fb1);
For $i = 0 To UBound($racketPrices) - 1
   $racketName = getTextBetweenTags($racketNames[$i])
   $racketPrice = getTextBetweenTags($racketPrices[$i])
    MsgBox($MB_SYSTEMMODAL, "Racket:" & $i,$racketName & " priced at " &  $racketPrice)
Next
func getTextBetweenTags($html)
    $value = StringTrimLeft($html,StringInStr($html,">"))
    $value = StringLeft($value,StringInStr($value,"<")-1)
    return $value;
EndFunc