-
Итак, с ценой тоже вышло по индексу "6". Вот код:
procedure TForm1.Button8Click(Sender: TObject);
Var i: Integer; Doc, List, Node: OleVariant;
Begin
Doc:=WebBrowser1.Document;
List:=Doc.querySelectorAll('text');
Node:=List.item(6);
Memo1.Lines.Clear;
Memo1.Lines.Add(Node.innerHTML);
end;
Только одно маленькое "НО" осталось: в WebBrowser цена сама меняется - мне программно для этого даже делать ничего не надо. Но как оно происходит? Наверно генерируется какое-то событие и цена в нем обновляется? Если это так то какое это событие?
Можно конечно повесить таймер и обновлять периодически цену. Но может можно обойтись без этого и обновлять цену в Memo1 лишь тогда, когда она изменяется в WebBrowser? Есть идеи как это сделать?
-
Итак, с ценой тоже вышло по индексу "6". Вот код:
procedure TForm1.Button8Click(Sender: TObject);
Var i: Integer; Doc, List, Node: OleVariant;
Begin
Doc:=WebBrowser1.Document;
List:=Doc.querySelectorAll('text');
Node:=List.item(6);
Memo1.Lines.Clear;
Memo1.Lines.Add(Node.innerHTML);
end;
Только одно маленькое "НО" осталось: в WebBrowser цена сама меняется - мне программно для этого даже делать ничего не надо. Но как оно происходит? Наверно генерируется какое-то событие и цена в нем обновляется? Если это так то какое это событие?
Можно конечно повесить таймер и обновлять периодически цену. Но может можно обойтись без этого и обновлять цену в Memo1 лишь тогда, когда она изменяется в WebBrowser? Есть идеи как это сделать?
-
Похоже я обрадовался преждевременно. Захожу значит через полчаса и уже в плане цены не 11 элементов, а уже 13 (видать вебстраница слегка изменилась) и соответственно цена уже идет не по индексу 6, а по индексу 8. А если бы это произошло во время торговли? Последствия могли бы быть печальными. Как же быть, чтобы искать не по конкретным цифрам по индексу, а как-то более надежно?
-
Похоже я обрадовался преждевременно. Захожу значит через полчаса и уже в плане цены не 11 элементов, а уже 13 (видать вебстраница слегка изменилась) и соответственно цена уже идет не по индексу 6, а по индексу 8. А если бы это произошло во время торговли? Последствия могли бы быть печальными. Как же быть, чтобы искать не по конкретным цифрам по индексу, а как-то более надежно?
-
Похоже я обрадовался преждевременно. Захожу значит через полчаса и уже в плане цены не 11 элементов, а уже 13 (видать вебстраница слегка изменилась) и соответственно цена уже идет не по индексу 6, а по индексу 8. А если бы это произошло во время торговли? Последствия могли бы быть печальными. Как же быть, чтобы искать не по конкретным цифрам по индексу, а как-то более надежно?
-
Похоже я обрадовался преждевременно. Захожу значит через полчаса и уже в плане цены не 11 элементов, а уже 13 (видать вебстраница слегка изменилась) и соответственно цена уже идет не по индексу 6, а по индексу 8. А если бы это произошло во время торговли? Последствия могли бы быть печальными. Как же быть, чтобы искать не по конкретным цифрам по индексу, а как-то более надежно?
-
Похоже я обрадовался преждевременно. Захожу значит через полчаса и уже в плане цены не 11 элементов, а уже 13 (видать вебстраница слегка изменилась) и соответственно цена уже идет не по индексу 6, а по индексу 8. А если бы это произошло во время торговли? Последствия могли бы быть печальными. Как же быть, чтобы искать не по конкретным цифрам по индексу, а как-то более надежно?
-
Похоже я обрадовался преждевременно. Захожу значит через полчаса и уже в плане цены не 11 элементов, а уже 13 (видать вебстраница слегка изменилась) и соответственно цена уже идет не по индексу 6, а по индексу 8. А если бы это произошло во время торговли? Последствия могли бы быть печальными. Как же быть, чтобы искать не по конкретным цифрам по индексу, а как-то более надежно?
-
Да, привязываться к индексу плохая идея. Да и обращаться к List.item(23) не проверив что их там есть столько - тоже. Может List вообще пустой. :3
А чего если?:
List:=Doc.querySelectorAll('#chart > div > svg > g > g.cutoffG > text');
ну или?:
List:=Doc.querySelectorAll('#chart > div');
JavaScript меняет текст. Мало ли как и откуда он его берёт и по каким внутренним событиям/таймерам срабатывает. Проще - тоже таймером.
А чего, запоминать где-то последнее значение и сравнивать с только что полученным. Изменилось - значит изменилось, тогда что-то делаем.
-
Да, привязываться к индексу плохая идея. Да и обращаться к List.item(23) не проверив что их там есть столько - тоже. Может List вообще пустой. :3
А чего если?:
List:=Doc.querySelectorAll('#chart > div > svg > g > g.cutoffG > text');
ну или?:
List:=Doc.querySelectorAll('#chart > div');
JavaScript меняет текст. Мало ли как и откуда он его берёт и по каким внутренним событиям/таймерам срабатывает. Проще - тоже таймером.
А чего, запоминать где-то последнее значение и сравнивать с только что полученным. Изменилось - значит изменилось, тогда что-то делаем.
-
Да, привязываться к индексу плохая идея. Да и обращаться к List.item(23) не проверив что их там есть столько - тоже. Может List вообще пустой. :3
А чего если?:
List:=Doc.querySelectorAll('#chart > div > svg > g > g.cutoffG > text');
ну или?:
List:=Doc.querySelectorAll('#chart > div');
JavaScript меняет текст. Мало ли как и откуда он его берёт и по каким внутренним событиям/таймерам срабатывает. Проще - тоже таймером.
А чего, запоминать где-то последнее значение и сравнивать с только что полученным. Изменилось - значит изменилось, тогда что-то делаем.
-
Да, привязываться к индексу плохая идея. Да и обращаться к List.item(23) не проверив что их там есть столько - тоже. Может List вообще пустой. :3
А чего если?:
List:=Doc.querySelectorAll('#chart > div > svg > g > g.cutoffG > text');
ну или?:
List:=Doc.querySelectorAll('#chart > div');
JavaScript меняет текст. Мало ли как и откуда он его берёт и по каким внутренним событиям/таймерам срабатывает. Проще - тоже таймером.
А чего, запоминать где-то последнее значение и сравнивать с только что полученным. Изменилось - значит изменилось, тогда что-то делаем.
-
Да, привязываться к индексу плохая идея. Да и обращаться к List.item(23) не проверив что их там есть столько - тоже. Может List вообще пустой. :3
А чего если?:
List:=Doc.querySelectorAll('#chart > div > svg > g > g.cutoffG > text');
ну или?:
List:=Doc.querySelectorAll('#chart > div');
JavaScript меняет текст. Мало ли как и откуда он его берёт и по каким внутренним событиям/таймерам срабатывает. Проще - тоже таймером.
А чего, запоминать где-то последнее значение и сравнивать с только что полученным. Изменилось - значит изменилось, тогда что-то делаем.
-
Да, привязываться к индексу плохая идея. Да и обращаться к List.item(23) не проверив что их там есть столько - тоже. Может List вообще пустой. :3
А чего если?:
List:=Doc.querySelectorAll('#chart > div > svg > g > g.cutoffG > text');
ну или?:
List:=Doc.querySelectorAll('#chart > div');
JavaScript меняет текст. Мало ли как и откуда он его берёт и по каким внутренним событиям/таймерам срабатывает. Проще - тоже таймером.
А чего, запоминать где-то последнее значение и сравнивать с только что полученным. Изменилось - значит изменилось, тогда что-то делаем.
-
А на случай если веб-страницу изменят авторы - параметры для querySelectorAll() можно вынести во внешний файл. Типа файл с настройками. Что-то вроде *.ini / *.json / *.xml.
-
А на случай если веб-страницу изменят авторы - параметры для querySelectorAll() можно вынести во внешний файл. Типа файл с настройками. Что-то вроде *.ini / *.json / *.xml.
-
А на случай если веб-страницу изменят авторы - параметры для querySelectorAll() можно вынести во внешний файл. Типа файл с настройками. Что-то вроде *.ini / *.json / *.xml.
-
А на случай если веб-страницу изменят авторы - параметры для querySelectorAll() можно вынести во внешний файл. Типа файл с настройками. Что-то вроде *.ini / *.json / *.xml.
-
А на случай если веб-страницу изменят авторы - параметры для querySelectorAll() можно вынести во внешний файл. Типа файл с настройками. Что-то вроде *.ini / *.json / *.xml.
-
А на случай если веб-страницу изменят авторы - параметры для querySelectorAll() можно вынести во внешний файл. Типа файл с настройками. Что-то вроде *.ini / *.json / *.xml.