Скачать HTML-страницу и ее содержание - PullRequest
39 голосов
/ 01 декабря 2009

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

Ответы [ 3 ]

35 голосов
/ 01 декабря 2009

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

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

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

11 голосов
/ 01 декабря 2009

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

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

wget -p --convert-links http://www.server.com/dir/page.html
7 голосов
/ 01 декабря 2009

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

import urllib.request

opener = urllib.request.FancyURLopener({})
url = "http://stackoverflow.com/"
f = opener.open(url)
content = f.read()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...