Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.07.2015, 01:00   #1
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию Получение информации с сайта

Доброго времени суток уважаемые форумчане!
Возникла следующая задача:
На сайте в режиме реального времени рисуется график с помощью зеленого и красного прямоугольника(рис 1.)


Мне необходимо посчитать сколько за последний час было красных элементов на графике и сколько зеленых график как я понимаю выводится на java

Буду благодарен за любой совет в какую область копать!
Спасибо!

Последний раз редактировалось Lorden; 27.07.2015 в 01:28.
Lorden вне форума Ответить с цитированием
Старый 27.07.2015, 01:48   #2
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Открывать сайт с помощью компонента браузера и распознавать изображение с него, думаю не вариант, хотя тоже можно. Правильнее будет посмотреть, как и какие данные получает JS и самому такие же запросы кидать, чтоб получать эти данные, по которым можно будет самому построить этот же график. Чтоб узнать как JS получает данные, можно использовать, например, Fiddler.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

Последний раз редактировалось Krasiosoft; 27.07.2015 в 02:09.
Krasiosoft вне форума Ответить с цитированием
Старый 27.07.2015, 23:20   #3
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Решил обрабатывать html страницу и уже потом самому строить график, но возникла проблема, при вытаскивании html кода с сайта не выводятся параметры внутри блоков div, в блоке div параметры являются динамическими и обновляются каждую секунду.
HTML Код который должен быть:
Код:
<div class="market-summary-quote-ticker quote-ticker-inited" data-symbol="FX:EURUSD">
    <a href="/chart/EURUSD/" class="chart-link inited" data-symbol="FX:EURUSD">
        <div class="symbol-name">EURUSD</div>
        <div class="symbol-tiker symbol-change-direction symbol-last up">1.10933</div>
    </a>
</div>
А это html код который обображается в моей программе:
Код:
                                <div class="market-summary-quote-ticker" data-symbol="FX:EURUSD">
    <a href="/chart/EURUSD/" class="chart-link" data-symbol="FX:EURUSD">
        <div class="symbol-name">EURUSD</div>
        <div class="symbol-tiker symbol-change-direction symbol-last"></div>
    </a>
</div>
HTML код с сайта вытаскиваю в компонент Memo1 с помощью кода:
Код:
Memo1.Lines.Clear;
if not HttpGetText(Edit1.Text, Memo1.Lines) then
    ShowMessage('Что то пошло не так.');
Народ подскажите как мне лучше действовать в данной ситуации?
Lorden вне форума Ответить с цитированием
Старый 28.07.2015, 00:46   #4
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Скорее всего, их должен заполнять JavaScript. С помощью чего Вы получаете html код страницы? Скачиваются ли при этом все JavaScript'ы и выполняются ли они?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Krasiosoft вне форума Ответить с цитированием
Старый 28.07.2015, 08:23   #5
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Скорее всего, их должен заполнять JavaScript. С помощью чего Вы получаете html код страницы? Скачиваются ли при этом все JavaScript'ы и выполняются ли они?
HTML получаю с помощью кода
Код:
HttpGetText(Edit1.Text, Memo1.Lines)
java как я понимаю не скачивается и невыполняется. Как возможно реализовать это выполнение? На данный момент смотрю в сторону компонента Chromium, чтобы в него изначально загрузить Web страницу и потом из него уже тянуть Html код.

И еще такой вопрос: В Chromium все сайты грузит нормально, но при попытке загрузить сайт который мне нужно моя программа закрывается с ошибкой:
Lorden вне форума Ответить с цитированием
Старый 28.07.2015, 08:37   #6
vipok72
Пользователь
 
Регистрация: 26.07.2015
Сообщений: 59
По умолчанию

WebBrowser выполняет js коряво, idHTTP вообще не выполняет, в вот Chromium выполняет идеально, вот ссылка на инфу которая щас вообще существует по этому компоненту (документации нет) тык, там есть то, что тебе нужно... но... проблема... к сожалению исходный код тебе получится вытащить только один раз сразу после загрузки страницы, сам вот с этим компонентом мучаюсь, есть плюсы, есть минусы....((
Наверн придется постоянно перезагружать страницу... выбора нет, либо изучить js код... данные же не из воздуха берутся правильно? просто брать эти самые данные из первых рук а не копируя со страницы можно

Насчет ошибки при загрузке вашего сайта: конечно есть мысль что из-за того что https, но этот компонент умеет с защищенным соединением работать 100%, возможно пишете неправильно url, и еще попробуйте у компонента поставить в свойстве DefaultUrl ваш сайт) посмотрите результат

Последний раз редактировалось vipok72; 28.07.2015 в 08:40.
vipok72 вне форума Ответить с цитированием
Старый 28.07.2015, 09:06   #7
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от vipok72 Посмотреть сообщение
WebBrowser выполняет js коряво, idHTTP вообще не выполняет, в вот Chromium выполняет идеально, вот ссылка на инфу которая щас вообще существует по этому компоненту (документации нет) тык, там есть то, что тебе нужно... но... проблема... к сожалению исходный код тебе получится вытащить только один раз сразу после загрузки страницы, сам вот с этим компонентом мучаюсь, есть плюсы, есть минусы....((
Наверн придется постоянно перезагружать страницу... выбора нет, либо изучить js код... данные же не из воздуха берутся правильно? просто брать эти самые данные из первых рук а не копируя со страницы можно

Насчет ошибки при загрузке вашего сайта: конечно есть мысль что из-за того что https, но этот компонент умеет с защищенным соединением работать 100%, возможно пишете неправильно url, и еще попробуйте у компонента поставить в свойстве DefaultUrl ваш сайт) посмотрите результат
Спасибо за ответ! Сейчас почитаю информацию.
По поводу ошибке- url введен верно и сайт начинает грузится и даже появляется эмблема сайта но через секунд 5 происходит зависание и закрытие программы.
Lorden вне форума Ответить с цитированием
Старый 28.07.2015, 09:10   #8
vipok72
Пользователь
 
Регистрация: 26.07.2015
Сообщений: 59
По умолчанию

Цитата:
Сообщение от Lorden Посмотреть сообщение
Спасибо за ответ! Сейчас почитаю информацию.
По поводу ошибке- url введен верно и сайт начинает грузится и даже появляется эмблема сайта но через секунд 5 происходит зависание и закрытие программы.
Видимо какой то нехороший js код выполняется, попробуйте отключить выполнение js в тех же свойствах Chromium и посмотреть результат
vipok72 вне форума Ответить с цитированием
Старый 28.07.2015, 09:32   #9
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от vipok72 Посмотреть сообщение
Видимо какой то нехороший js код выполняется, попробуйте отключить выполнение js в тех же свойствах Chromium и посмотреть результат
При отключении JS HTML сайта выводится в Memo1 но в Chromium чисто белый экран
Lorden вне форума Ответить с цитированием
Старый 28.07.2015, 10:49   #10
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

При нажатии на компонент Chromium правой кнопкой выпадает список
Код:
Back
Forward
--------------
Print
View source
Вот View source вытаскивает исходный код страницы включая динамически обновляющиеся переменные и записывает этот html в WordPad.
Как раз задача которую мне и необходимо решить, только вот возникает проблема, при нажатии на кнопку в которой находится код:
Код:
Chromium1.Browser.MainFrame.ViewSource
выдает ошибку:

Последний раз редактировалось Lorden; 28.07.2015 в 12:02.
Lorden вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Qt] Получение информации с сайта Pixelrom33 Qt и кроссплатформенное программирование С/С++ 6 03.01.2018 16:24
Получение информации о процессе RibGeDx Visual C++ 2 13.04.2013 14:09
c++ получение информации из файла NinjaNoob Помощь студентам 9 27.01.2013 23:52
Получение информации о принтере mutabor Общие вопросы Delphi 4 17.05.2011 16:37
Получение информации о железе FalseMaster Win Api 2 25.11.2009 06:05