Как вытащить html контент, выдаваемый в браузер?

Тема в разделе "WASM.BEGINNERS", создана пользователем flipper, 23 мар 2007.

  1. flipper

    flipper New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    17
    Пытаюсь написать программку, которая подставлялась бы в браузер, перехватывала направляемый в него html код и правила по своему усмотрению. Как бы смешно это не звучало, но где этот самый код искать? То есть моя программа перехватывает wsock32!recv, в результате чего я имею возможность наблюдать, что содержится в буфере после вызова данной функции. Все более-менее понятное, что удалось выудить оттуда - это короткие ответы сервера вида

    HTTP/1.1 200 Ok<\n>
    Content-Type: text/html<\n>

    Остальное - символьная мешанина. А где сами html теги? Они обязательно лежат в строке ответа в первоначальном виде или как-то закодированы (для проверки брал поиск в google)? Возможно вопрос глупый, но мне нужна хоть какая-то определенность - может теги должны быть видны невооруженным глазом, а я слепой и их не вижу (допускаю, так как в отладчике могу просмотреть только n-ый recv, где n указываю в коде самой программы). Люди, пожалуйста помогите чайнику - очень нада.
     
  2. W4FhLF

    W4FhLF New Member

    Публикаций:
    0
    Регистрация:
    3 дек 2006
    Сообщения:
    1.050
    Перехвати send(WSASend etc.) и посмотри на поле в заголовке:
    Если у тебя есть, что-то подобное, а оно скорее всего есть, то естественно в качестве ответа ты получаешь сжатые данные. Дальше думай сам:) Самый простой способ избавиться: при перехвате запроса править заголовок в нужном направлении.
     
  3. flipper

    flipper New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    17
    Спасибо большое=) это решило все вопросы.
     
  4. flipper

    flipper New Member

    Публикаций:
    0
    Регистрация:
    5 мар 2007
    Сообщения:
    17
    Черт, похоже не все. Значение заголовка Accept-Encoding убил, теперь все видно, как на ладони=) Но вот незадача - опять тестирую с поиском в гугле, получаю вполне осмысленное содержимое, но не полностью - результаты поиска остаются где-то за кадром. Последующий перехват recv ничего не дает (хотя тут опять же допускаю свою ошибку - возможно нужный recv пропускаю), хотя в браузер страница грузится полностью. Если нужно догрузить оставшийся контент, как поступает браузер? Как можно получить оставшуюся часть страницы? Используя recv один раз может ли браузер получить больше одного пакета?