Pregunta Descargue la página html y su contenido


¿Python tiene alguna forma de descargar toda la página html y sus contenidos (imágenes, css) a la carpeta local dada una url. Y actualizando el archivo html local para elegir contenido localmente.


32
2017-12-01 10:58


origen


Respuestas:


Puedes usar el urllib módulo para descargar URL individuales, pero esto solo devolverá los datos. No analizará el HTML y descargará automáticamente cosas como archivos e imágenes CSS.

Si desea descargar la página "completa" necesitará analizar el HTML y encontrar las otras cosas que necesita descargar. Podrías usar algo como Hermosa sopa para analizar el HTML que recuperas

Esta pregunta tiene un código de muestra que hace exactamente eso.


30
2017-12-01 11:02



Lo que estás buscando es una herramienta de duplicación. Si quieres uno en Python, listas de PyPI spider.py pero no tengo experiencia con eso. Otros podrían ser mejores, pero no sé, uso 'wget', que es compatible obteniendo el CSS y las imágenes. Esto probablemente haga lo que quieras (citando de el manual)

Recupere solo una página HTML, pero haga   Seguro que todos los elementos necesarios para   la página que se mostrará, como   imágenes en línea y estilo externo   hojas, también se descargan. También haz   Seguro que la página descargada hace referencia   los enlaces descargados

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

7
2017-12-01 11:59



Puedes usar el urlib:

import urllib.request

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

6
2017-12-01 11:00