Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: считывание информации с web-страницы  (Прочитано 12353 раз)
0 Пользователей и 1 Гость смотрят эту тему.
nux
Интересующийся

ru
Offline Offline

« : 06-11-2008 11:29 » 

Требуется помощь.
Задача, я думаю, не новая и кто-то наверняка с ней сталкивался.

Нужно в сайта банка считать курсы валют.

Умом я  понимаю, что надо как-то добраться до нужной страницы и искать там инфу по определенным критериям, но я ни разу в жизни не работала с web-ом.
Если у кого-то есть примерчик или знает где посмотреть инфу, направьте, плз.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #1 : 06-11-2008 12:29 » 

nux,
1) Клиент-серверные приложения создавал?
2) Работал с ActiveX?
Если первое, работа с вэб ничем не отличается от работы с другими протоколами. Даеш запрос, получаеш ответ. Затем парсиш страницу на предмет информации.
Если второе, то читаеш, как можно IE пытать, чтоб он за тебя делал запрос, и отдавал ответ.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nux
Интересующийся

ru
Offline Offline

« Ответ #2 : 06-11-2008 12:47 » 

1/ нет
2/ если честно, не совсем вникла о чем именно речь. Можно подробнее?

И нет случаем примерчика мелкого какого-нить на первый вариант? Без парсера, ессно. ПРОсто, посмотреть технологию.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #3 : 06-11-2008 12:55 » 

Вот тут https://club.shelek.ru/view.php?id=29 серия статей "Winsock для всех".
« Последнее редактирование: 06-11-2008 12:57 от Finch » Записан

Не будите спашяго дракона.
             Джаффар (Коша)
nux
Интересующийся

ru
Offline Offline

« Ответ #4 : 06-11-2008 13:07 » 

спасибо. ушла читать
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #5 : 06-11-2008 13:21 » 

Поскольку не указаны начальные и граничные условия, то посмотри MFC класс CHttpFile и всё что к нему относится. Примерчики. В итоге ты получишь содержимое html файла (html код) по указанному адресу.
Ну, а дальше уже "по определенным критериям" парсишь и вытаскиваешь нужные тебе данные, если они конечно представлены в виде текста, а не картинок.

Если MFC не приемлемо, то тогда сокеты - winsock.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
kisilevski
Постоялец

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 07-11-2008 19:02 » new

Пишу сейчас программу для вытаскивания данных с web-страниц.
Подходы такие:
1) Создаю CHtmlView-based SDI приложение.
2) В OnDocumentComplete смотрю, что за страница открыта (у меня много вариантов), ставлю таймер (чтобы не напугать сервер)
3) По таймеру вызываю функцию, в которой получаю указатель на интерфейс коллекции тегов, затем вытаскиваю нужный тег по его ID (для некоторых сайтов этот вариант проходит), либо прямой перебор пока не встретится ключевое слово, если нет ID у нужного тега.
4) У самого тега есть функции get_innerHTML, get_outerHTML, get_innerText, и даже click на случай, если прямой ссылки на то место, куда хочется перейти, не достать. Так что - полная свобода действий.

Я складываю полученное в SQL сервер, обрабатывается оно уже другими приложениями.

Если в вашем случае нужно встроить этот функционал в существующее приложение, можете попробовать создать диалог на базе класса CDHTMLDialog, запустить его в невидимом режиме и в нём проделать всё то же самое. Так же думаю, в вашем случае можно обойтись и без таймера, если только не окажется нужным переходить между страницами по ссылкам. Всё должно получиться достаточно просто.

Всё написанное имеет смысл, если вы пишете на MS Visual Studio.
« Последнее редактирование: 07-11-2008 19:12 от kisilevski » Записан

Ложки нет. See MSDN for details.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines