Как правильно сохранять полный html код страниц

Axel

Client
Регистрация
20.03.2017
Сообщения
189
Реакции
10
Баллы
18
Как лучше получать полный код страницы, помогите разобраться.

Вариант 1 браузер - полная загрузка страницы "со всеми потрохами" - потом сохранить Source (DOM ?)

или же 2 вариант - GET запрос?

Задача сохранять полный html код страниц чтобы потом локально уже с них парсить. Не пропустить никакой кусок который реально на сайте.
 
Как лучше получать полный код страницы, помогите разобраться.

Вариант 1 браузер - полная загрузка страницы "со всеми потрохами" - потом сохранить Source (DOM ?)

или же 2 вариант - GET запрос?

Задача сохранять полный html код страниц чтобы потом локально уже с них парсить. Не пропустить никакой кусок который реально на сайте.
Все зависит от ваших задач, если GET возвращает достаточно информация, то я бы использовал его.
 
Как лучше получать полный код страницы, помогите разобраться.

Вариант 1 браузер - полная загрузка страницы "со всеми потрохами" - потом сохранить Source (DOM ?)

или же 2 вариант - GET запрос?

Задача сохранять полный html код страниц чтобы потом локально уже с них парсить. Не пропустить никакой кусок который реально на сайте.
DOM - это не то же самое что GET.

При открытии странички - первый GET - это фактически точка входа.
После чего на страничке может выполняться какой-то JS код, который например по API получит дополнительные данные.
И эти данные отобразит на страничке - тоесть они появлятся в DOM.

В многих случаях хватает GET для получения данных.
Но также во многих случаях этот GET отправлять нужно не туда, куда мы переходим в браузере, а на какой-то URL который вызывал браузер при открытии странички.

Тоесть, смотрим трафик - ищем там нужные данные.
После чего понимаем какой запрос нужно отправлять.
И далее пытаемся это повторить.

Через GET будет кушать меньше ресурсов (CPU,RAM), да и в целом быстрее будет.
Но... Иногда получать данные через GET сложнее чем используя браузерный DOM (например если данные для отображения берутся с большого количества запросов, а для запросов используются какие-то токены которые не известно как генерировать).
 
  • Спасибо
Реакции: Hannes и Dmitriy_Zenno
Для требования «не пропустить никакой кусок» важнее момент сохранения, чем выбор GET/браузер. Даже DOM после полной загрузки — только текущее состояние, а не всё содержимое сайта.

Например, виртуализированный список удаляет старые строки из DOM при прокрутке. Если один раз сохранить HTML внизу страницы, начало списка может уже отсутствовать. В таком случае нужно собирать записи по мере появления и удалять дубли по ID, либо использовать разрешённый API с пагинацией. Ленивую загрузку, вкладки и «Показать ещё» тоже нужно обработать до сохранения нужного состояния.

Я бы сначала взял несколько контрольных записей: с начала, середины и конца списка. Проверил их наличие в ответе GET и в сохранённом DOM. Если GET содержит все нужные поля — сохранять его; если нет — ждать в браузере конкретные элементы/количество записей, а не только событие загрузки.

Отдельно: HTML основного документа не включает содержимое iframe как часть своей разметки, а картинки и CSS по ссылкам не превращаются в локальные файлы. Для последующего парсинга данных это часто нормально, для полноценного офлайн-архива одной HTML-строки недостаточно.
 

Кто просматривает тему: (Всего: 2, Пользователи: 0, Гости: 2)