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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2015, 15:16   #11
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Там вроде нужно было делать так:

Код:
Chromium1.Browser.GetMainFrame.ViewSource
А не проще будет просто узнать запрос, который отправляет JS и отправлять его, чтоб получить эти данные?

Можете дать ссылку на сайт? Попробую узнать запрос.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

Последний раз редактировалось Krasiosoft; 28.07.2015 в 15:19.
Krasiosoft вне форума Ответить с цитированием
Старый 28.07.2015, 15:24   #12
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Там вроде нужно было делать так:

Код:
Chromium1.Browser.GetMainFrame.ViewSource
А не проще будет просто узнать запрос, который отправляет JS и отправлять его, чтоб получить эти данные?

Можете дать ссылку на сайт? Попробую узнать запрос.
Спасибо код работает! А случайно не знаете как сделать чтобы html выводило не в документ а в переменную?
Сайт https://www.tradingview.com/chart/?q=FX%3AEURUSD1222
Задача вывести в программу курс валюты EURUSD и уже от этого курса планирую строить график.
Lorden вне форума Ответить с цитированием
Старый 28.07.2015, 15:46   #13
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

Для получения курса валюты EURUSD простого запроса не хватит, нужно будет использовать WebSocket, т.к. он получает с помощью него данные.

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

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Для получения курса валюты EURUSD простого запроса не хватит, нужно будет использовать WebSocket, т.к. он получает с помощью него данные.
Попробую покапать в сторону WebSocket.


Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Я может вопроса не понял, но посмотрите, какой тип данных возвращает функция ViewSource, создайте переменную этого типа и записывайте туда.
Chromium1.Browser.GetMainFrame.View Source- как я понимаю это процедура, и она не возвращает никакого значения а просто при её вызове создает Word-овский файл и записывает туда html страницы открытой в Chromium-е.
Lorden вне форума Ответить с цитированием
Старый 28.07.2015, 16:01   #15
Krasiosoft
Форумчанин
 
Аватар для Krasiosoft
 
Регистрация: 01.06.2015
Сообщений: 497
По умолчанию

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

Документацию бы найти где-то...
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

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

А возможно ли каким либо образом отредактировать саму процедуру
Код:
Chromium1.Browser.GetMainFrame.View Source
А не подскажите какую документацию почитать чтобы выполнить мою задачу с помощью WebSocket?

И если не трудно скажите что означает данный код:
Код:
procedure StringVisitor(const str: ustring);
begin
  //str is the SourceHtml showmessage(str);
end;

function GetSourceHTML: string;
var CefStringVisitor:ICefStringVisitor;
begin CefStringVisitor := TCefFastStringVisitor.Create(StringVisitor); Chromium1.Browser.MainFrame.GetSource(CefStringVisitor);
end;

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

Не думаю, что через WebSocket будет проще сделать это, т.к. нужно будет изучать протокол обмена данными. Единственный плюс от этого будет, что не нужно использовать целый движок браузера.

Код, который Вы привели, скорее всего, берет исходный код страницы на основе класса ICefStringVisitor, в который была установлена функция StringVisitor. Но в каком виде попадут данные в функцию StringVisitor - не знаю, нужна документация по функции GetSource, и по классу ICefStringVisitor.

Попробуйте какой-то из этих вариантов еще:
1)
Код:
    procedure MyProc(const src : ustring)
    begin
        Memo1.text := src;
    end;
    ...
    Chromium1.Browser.GetMainFrame.GetSourceProc(MyProc);
2)
Код:
    Memo1.text := Chromium1.Browser.GetMainFrame.Source;
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).

Последний раз редактировалось Krasiosoft; 28.07.2015 в 20:54.
Krasiosoft вне форума Ответить с цитированием
Старый 28.07.2015, 21:38   #18
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
Хорошо

Цитата:
Сообщение от Krasiosoft Посмотреть сообщение
Не думаю, что через WebSocket будет проще сделать это, т.к. нужно будет изучать протокол обмена данными. Единственный плюс от этого будет, что не нужно использовать целый движок браузера.

Код, который Вы привели, скорее всего, берет исходный код страницы на основе класса ICefStringVisitor, в который была установлена функция StringVisitor. Но в каком виде попадут данные в функцию StringVisitor - не знаю, нужна документация по функции GetSource, и по классу ICefStringVisitor.

Попробуйте какой-то из этих вариантов еще:
1)
Код:
    procedure MyProc(const src : ustring)
    begin
        Memo1.text := src;
    end;
    ...
    Chromium1.Browser.GetMainFrame.GetSourceProc(MyProc);
2)
Код:
    Memo1.text := Chromium1.Browser.GetMainFrame.Source;
Огромнейшее спасибо! работает код:
Код:
    procedure MyProc(const src : ustring)
    begin
        Memo1.text := src;
    end;
    ...
    Chromium1.Browser.GetMainFrame.GetSourceProc(MyProc);
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