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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.02.2009, 12:48   #1
T_o_l_i_k
 
Регистрация: 25.06.2008
Сообщений: 4
По умолчанию как это сграбить?

Ссылка на проблемную страницу ниже. На неё захожу при помощи TWebBrowser'а двумя переходами
с другого сайта. Нужно сграбить строку после слов "Оценка компании". Трабл в том, что страница формируется после загрузки ява-скриптом. Сохранение содержимого в файл не помогает, так как html код содержит только те самые скрипты, которые и тянут данные на страничку.

Если знаете, как добраться до данных, помогите плиз

http://spark.interfax.ru/CompanyInfo...che=2140411910
T_o_l_i_k вне форума Ответить с цитированием
Старый 14.02.2009, 13:04   #2
FANATID
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 62
По умолчанию

юзай IdHTTP и парси js
FANATID вне форума Ответить с цитированием
Старый 14.02.2009, 13:36   #3
T_o_l_i_k
 
Регистрация: 25.06.2008
Сообщений: 4
По умолчанию

Цитата:
Сообщение от FANATID Посмотреть сообщение
юзай IdHTTP и парси js
парсить яву? если и найду последовательность функций на яве, что потом с ними делать? это же не данные...

Может можно как-то порыться в потрохах WebBrowser'а?

Последний раз редактировалось T_o_l_i_k; 14.02.2009 в 14:38.
T_o_l_i_k вне форума Ответить с цитированием
Старый 14.02.2009, 14:45   #4
FANATID
Пользователь
 
Регистрация: 12.02.2009
Сообщений: 62
По умолчанию

Цитата:
если и найду последовательность функций на яве, что потом с ними делать
взаимодействовать с сервером
если ты говоришь что данные вытягиваются ява скриптом, то тогда лучше даже не парсить эту страницу, а обращаться программкой туда куда обращается ява скрипт. в ява скриптах кстати даже комментарии есть, что какая функция делает. добрый человек писал....
FANATID вне форума Ответить с цитированием
Старый 14.02.2009, 23:03   #5
T_o_l_i_k
 
Регистрация: 25.06.2008
Сообщений: 4
По умолчанию

воспользовался вот этим...

tr: IHTMLTxtRange;
....
tr := ((WebBrowser1.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange;
tr.text

из текста легко вынимается нужная строка.

Есть ещё трабл... не могу правильно выделить момент времени, когда нужно обращаться к WebBrowser за данными.
Грабли чешут страницы в цикле. WebBrowser'у передается url в метод Navigate. Пробывал ждать окончания загрузки данных следующими вариантами:
1. ждать в вайле, пока WebBrowser.Busy: while WebBrowser.Busy do Application.ProcessMessages
2. вызывать родной метод WebBrowser: WaitWileBusy()
Ни первое, ни второе не спасают от смешивания данных. Грабли идут по ссылке номер N, а из WebBrowser'а вынимается текст, относящийся к одной из предшествующих ссылок.

И ещё одна новость... иногда само открывается окно IE, а после его закрытия вручную возникает окно с вопросом "Просматриваемая web-страница пытается закрыть окно. Закрыть окно?"... Если нажать "Да", то WebBrowser пропадает с формы + Exception. "Нет" приводит к слету и остановке граблей. Трудность в том, что Delphi на одном ПК, а Интернет на другом - отлаживиться тяжко

Последний раз редактировалось T_o_l_i_k; 14.02.2009 в 23:44.
T_o_l_i_k вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Гиперссылка это как ?? SanSanblch Общие вопросы Delphi 11 14.01.2009 20:30
как это сделать? DeDoK Общие вопросы Delphi 2 11.07.2008 04:41
Как это понять If Not Intersect valerij Microsoft Office Excel 18 21.06.2008 12:57
Не знаю как это сделать:) LSDkltn БД в Delphi 2 09.11.2007 13:39