У меня есть HTML-страница на моем локальном хосте - get_description.html
.
Фрагмент кода ниже является частью кода:
<input type="text" id="url"/>
<button id="get_description_button">Get description</button>
<iframe id="description_container" src="#"/>
При нажатии кнопки src
в iframe устанавливается на URL-адрес, введенный в текстовое поле. Страницы, извлеченные таким образом, очень большие с большим количеством связанных файлов. На странице меня интересует блок текста, содержащийся в элементе <div id="description">
.
Есть ли способ уменьшить загрузку ресурсов, связанных на странице, которая загружается в iframe?
Я не хочу использовать curl, потому что данные доступны только зарегистрированным пользователям, и шаги, которые нужно выполнить с помощью curl, чтобы получить контент, слишком сложны. Iframe прост, поскольку я использую его в окне, которое отправляет нужные файлы cookie, чтобы идентифицировать запрос как поступивший от вошедшего в систему пользователя, но проблема в том, что очень расточительно получить почти 1 МБ данных, чтобы сохранить их 1 КБ и выкинуть остальное.
Редактировать
Если предложенный метод просто работает в Firefox, то все в порядке, поэтому я добавил тег firefox. Кроме того, вполне возможно, что ответ на самом деле относится к области дополнительных методов Firefox, поэтому я добавил и этот тег.
Проблема не в том, что я не могу получить то, что я ищу, скорее, проблема в том, что простой метод iframe
расточителен.
Я знаю, что Firefox позволяет загружать только текст страницы. Если вы открываете страницу и нажимаете Ctrl + U, вы попадаете в окно «Просмотр источника страницы». Там ссылки ведут себя как обычно и являются кликабельными. Если щелкнуть ссылку в представлении источника, источник новой страницы загружается в просмотреть исходное окно, без загрузки связанных ресурсов, именно то, что я пытаюсь получить. Но я не знаю, как получить доступ к этому поведению.
Другим примером является дополнение Adblock. Это как-то убивает элементы, прежде чем они будут загружены. С простым javascript это невозможно. Потому что он срабатывает слишком поздно, чтобы вовремя вмешаться.