|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
14.02.2009, 12:48 | #1 |
Регистрация: 25.06.2008
Сообщений: 4
|
как это сграбить?
Ссылка на проблемную страницу ниже. На неё захожу при помощи TWebBrowser'а двумя переходами
с другого сайта. Нужно сграбить строку после слов "Оценка компании". Трабл в том, что страница формируется после загрузки ява-скриптом. Сохранение содержимого в файл не помогает, так как html код содержит только те самые скрипты, которые и тянут данные на страничку. Если знаете, как добраться до данных, помогите плиз http://spark.interfax.ru/CompanyInfo...che=2140411910 |
14.02.2009, 13:04 | #2 |
Пользователь
Регистрация: 12.02.2009
Сообщений: 62
|
юзай IdHTTP и парси js
|
14.02.2009, 13:36 | #3 |
Регистрация: 25.06.2008
Сообщений: 4
|
парсить яву? если и найду последовательность функций на яве, что потом с ними делать? это же не данные...
Может можно как-то порыться в потрохах WebBrowser'а? Последний раз редактировалось T_o_l_i_k; 14.02.2009 в 14:38. |
14.02.2009, 14:45 | #4 | |
Пользователь
Регистрация: 12.02.2009
Сообщений: 62
|
Цитата:
если ты говоришь что данные вытягиваются ява скриптом, то тогда лучше даже не парсить эту страницу, а обращаться программкой туда куда обращается ява скрипт. в ява скриптах кстати даже комментарии есть, что какая функция делает. добрый человек писал.... |
|
14.02.2009, 23:03 | #5 |
Регистрация: 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. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Гиперссылка это как ?? | 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 |