Подтвердить что ты не робот

Загрузите страницу html и ее содержимое

Есть ли у python какой-либо способ загрузки всей html-страницы и ее содержимого (изображений, css) в локальную папку с указанием URL-адреса. И обновление локального файла html для локального выделения контента.

4b9b3361

Ответ 1

Вы можете использовать модуль urllib для загрузки отдельных URL-адресов, но это просто вернет данные. Он не будет анализировать HTML и автоматически загружать такие вещи, как файлы CSS и изображения.

Если вы хотите загрузить "целую" страницу, вам нужно будет проанализировать HTML и найти другие вещи, которые вам нужно скачать. Вы можете использовать что-то вроде Beautiful Soup для анализа полученного вами HTML-кода.

Этот вопрос содержит пример кода, который делает именно это.

Ответ 2

То, что вы ищете, является зеркальным инструментом. Если вы хотите один в Python, PyPI перечисляет spider.py, но у меня нет опыта с ним. Другие могут быть лучше, но я не знаю. Я использую "wget", который поддерживает получение CSS и изображений. Это, вероятно, делает то, что вы хотите (цитируя руководство)

Извлеките только одну HTML-страницу, но сделайте что все элементы, необходимые для страница, которая будет отображаться, например встроенные изображения и внешний стиль листы, также загружаются. Также сделайте обязательно загруженные ссылки на страницы загруженные ссылки.

wget -p --convert-links http://www.server.com/dir/page.html

Ответ 3

Вы можете использовать urlib:

import urllib.request

opener = urllib.request.FancyURLopener({})
url = "http://stackoverflow.com/"
f = opener.open(url)
content = f.read()