假设有些数字/字符不断变化。
我的目标是在“非活动窗口”下阅读这些值:
#include <IE.au3>
Global $fb1 = _IECreate(https://www.google.ca/?gfe_rd=cr&ei=oPLYV6qlMMbM8ge3xqiYDg#q=tennis+racquet+price)
网球拍的价格很可能会改变,我希望得到价值。
我的愚蠢计划是:
$
的位置并阅读右侧的文本(如果可能)$
抓取到sport chek
,然后继续(如果可能)所有这些都在inactive window
下失败了!我通过所有_IE
函数和常规函数阅读。
答案 0 :(得分:0)
我认为最好使用Invisible IE窗口。你可以使用一个非活动的,只是最小化它,但为什么要经历这个麻烦。
下面的代码将使用隐藏的IE窗口读取结果,因此无法获得焦点。它查看HTML类并获取名称和价格,并在消息框中显示它们。由于名称不完整,您的唯一标识符可能是div class =&#34; pla-unit-title&#34;
下的链接#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