|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.03.2010, 15:56 | #1 |
Форумчанин
Регистрация: 09.03.2010
Сообщений: 138
|
Парсинг голой HTML страницы
Привет всем
До этого пробовал загружать странички методом GET и пропарсив теги получал содержимое страниц для данной сессии. Но как выяснилось некоторые сайты обычно после успешной сессии и записи кук автоматически перенаправляют (redirect) пользователя тем самым изменяется некоторые строчки кода в самой страничке что тоже реально. Как вы думаете стоит ли для таких случаев заранее сохранять голый HTML сайт физически у себя и после этого уже парсить его как локальный файл, думаю такой подход может оказаться весьма стабильнее имея у себя конкретный файл данных.
Вчера
|
15.03.2010, 18:25 | #2 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
После вызова GET с полученным текстом уже ничего не поможет произойти, потому что
1) Если там были редиректы, то они уже сделались (если конечно HandleRedirects не стоит false) 2) яваскрипты не выполняются |
15.03.2010, 18:30 | #3 |
Форумчанин
Регистрация: 09.03.2010
Сообщений: 138
|
Как это не выполняются можно по подробнее? Т.е если измениться значение в SELECT которые реализован на джаваскрипт то его методы не будут обрабатываться? я что то не понял
думаю а может сохранить страничку на выходе как txt и потом парсить его? Redirect поставил в true и заполнил все POST данные в свойствах HTTP компоненты, прописал до User Agenta и подключил Cookie manager. Пример у меня такой Код:
Вчера
Последний раз редактировалось Blourid; 15.03.2010 в 18:48. |
15.03.2010, 18:56 | #4 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
Для начала, что такое HTTP1?
Это TIdHTTP? Я говорил про него. Если да, то заводим пременную s типа стринг и s:=HTTP1.Get(...) будет достаточно. |
15.03.2010, 19:10 | #5 |
Форумчанин
Регистрация: 09.03.2010
Сообщений: 138
|
Да конечно это idHTTP просто я использую CnPack и меняю название компонентов.
Загружать в память это не то что я хочу, дело в том что, на сайте используется джаваскрипт и ajax, которые берут данные из базы, например если выбрать какое то значение потом нажать на Submit - Отправить и после этого 10-15 секунд в поиске базы данных моего запроса на следующей страницы выводится ответ. Но как вы уже знаете сам сайт не перенаправляется на другую страничку а обновляется содержимое формы джаваскрипта который выводит тот результат. Я выделил тот участок на форме и посмотрел его исходный код, увидел что этот код генерирует после ответа из базы , т.е до запроса этого кода на страничке не было. А я как обычно при подключении посылаю POST запрос для двух значений, и сайт как бы приняв мой запрос ждет еще нажатия кнопки чтобы завершить ее, потом уже после того если я даже нажму на эту кнопку то придется подождать еще 10-15 сек. чтобы получить ответ. Задача в том как мне получить ответ после всех этих манипуляций ввода значений? Как узнать загружена ли последняя ответная страничка из которой я смогу пропарсить для себя нужные мне данные...
Вчера
|
15.03.2010, 19:37 | #6 |
Участник клуба
Регистрация: 28.07.2009
Сообщений: 1,510
|
Idhttp не выполняет ничего по типу ajax и javascript. Это делается ручками. Просто отправляем пост-запрос и ждём ответа. Потом просто анализируем его.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
парсинг Html | eldar | Общие вопросы Delphi | 4 | 23.04.2009 20:42 |
Парсинг страницы | Terikon | Общие вопросы Delphi | 3 | 04.04.2009 00:32 |
парсинг страницы | seoanalyzer | Общие вопросы Delphi | 3 | 13.02.2009 12:50 |
Парсинг HTML страницы | OkeaH | Работа с сетью в Delphi | 1 | 19.01.2009 09:17 |
HTML Парсинг | BaikalLord | Помощь студентам | 5 | 15.12.2008 08:20 |