2016-09-14 4 views
0

Предположим, что некоторые цифры/символы постоянно меняются.#autoit Чтение «постоянно меняющейся» строки

И моя цель состоит в том, чтобы читать эти значения в разделе «неактивного окна»:

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

sample screen

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

Мой глупый план был:

  1. получить позицию $ и читать текст вправо (если это возможно)
  2. найти номер строки и прочитать всю эту строку, чтобы извлечь значения
  3. поймать строку из $ в sport chek и продолжить (если это возможно)

Все из них не под inactive window! Я прочитал все функции и регулярные функции _IE.

Не могли бы вы дать мне несколько советов?

ответ

0

Я думаю, что лучше использовать невидимое окно IE. Вы можете использовать неактивный и просто свести его к минимуму, но зачем переживать эту проблему.

Код ниже будет читать результаты, используя скрытое окно IE, чтобы он не мог сфокусироваться. Он рассматривает классы HTML и захватывает имя и цены и отображает их в окне сообщений. Поскольку имя является неполным, ваш уникальный идентификатор может быть ссылкой под div-классом = "pla-unit-title"

#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 
+0

wow you're genius! , и я действительно не знал о наличии невидимого IE! спасибо, что так много! – pita

 Смежные вопросы

  • Нет связанных вопросов^_^