____ _ __ __ ______ _____
/ __ __ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
/ /_/ / / / / | /| / / _ / __ / / / __ / __ / / / / / /
/ ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
/_/ __, / |__/|__/___/_.___/____/____/ .___/__, / /_/
/____/ /_/ /____/
Created By : Raja Tomar License : Apache License 2.0 Email: [email protected]
PywebCopy es una herramienta gratuita para copiar sitios web completos o parciales localmente en su disco duro para la visualización fuera de línea.
PywebCopy escaneará el sitio web especificado y descargará su contenido en su disco duro. Los enlaces a recursos como hojas de estilo, imágenes y otras páginas en el sitio web se reasignarán automáticamente para que coincida con la ruta local. Usando su amplia configuración, puede definir qué partes de un sitio web se copiarán y cómo.
PywebCopy examinará el margen de HTML de un sitio web e intentará descubrir todos los recursos vinculados, como otras páginas, imágenes, videos, descargas de archivos, cualquier cosa y todo. Descargará todos los recursos de tesis y continuará buscando más. De esta manera, WebCopy puede "rastrear" un sitio web completo y descargar todo lo que ve en un esfuerzo por crear un facsímil razonable del sitio web de origen.
PywebCopy no incluye un DOM virtual o ninguna forma de análisis de JavaScript. Si un sitio web hace un uso intensivo de JavaScript para operar, es poco probable que PywebCopy pueda hacer una copia verdadera si no puede descubrir todo el sitio web debido a que JavaScript se usa para generar enlaces dinámicamente.
PywebCopy no descarga el código fuente sin procesar de un sitio web, solo puede descargar lo que devuelve el servidor HTTP. Si bien hará todo lo posible para crear una copia fuera de línea de un sitio web, los sitios web avanzados basados en datos pueden no funcionar como se esperaba una vez que se hayan copiado.
pywebcopy está disponible en PYPI y se puede instalar fácilmente utilizando pip
$ pip install pywebcopy
Estás listo para ir. Lea los tutoriales a continuación para comenzar.
Siempre debe verificar si la última pywebcopy se instala correctamente.
>>> import pywebcopy
>>> pywebcopy.__version___
7.x.x
Su versión puede ser diferente, ahora puede continuar el tutorial.
Para guardar cualquier página, simplemente escriba la consola Python
from pywebcopy import save_webpage
save_webpage (
url = "https://httpbin.org/" ,
project_folder = "E://savedpages//" ,
project_name = "my_site" ,
bypass_robots = True ,
debug = True ,
open_in_browser = True ,
delay = None ,
threaded = False ,
)Para guardar el sitio web completo (esto podría sobrecargar el servidor de destino, por lo tanto, tenga cuidado)
from pywebcopy import save_website
save_website (
url = "https://httpbin.org/" ,
project_folder = "E://savedpages//" ,
project_name = "my_site" ,
bypass_robots = True ,
debug = True ,
open_in_browser = True ,
delay = None ,
threaded = False ,
)Ejecutar pruebas es simple y no requiere ninguna biblioteca externa. Simplemente ejecute este comando desde el directorio raíz del paquete PywebCopy.
$ python -m pywebcopy --tests pywebcopy tiene una interfaz de línea de comandos muy fácil de usar que puede ayudarlo a hacer tareas sin tener que preocuparse por el camino interno.
$ python -m pywebcopy --help Usage: pywebcopy [-p|--page|-s|--site|-t|--tests] [--url=URL [,--location=LOCATION [,--name=NAME [,--pop [,--bypass_robots [,--quite [,--delay=DELAY]]]]]]]
Python library to clone/archive pages or sites from the Internet.
Options:
--version show program's version number and exit
-h, --help show this help message and exit
--url=URL url of the entry point to be retrieved.
--location=LOCATION Location where files are to be stored.
-n NAME, --name=NAME Project name of this run.
-d DELAY, --delay=DELAY
Delay between consecutive requests to the server.
--bypass_robots Bypass the robots.txt restrictions.
--threaded Use threads for faster downloading.
-q, --quite Suppress the logging from this library.
--pop open the html page in default browser window after
finishing the task.
CLI Actions List:
Primary actions available through cli.
-p, --page Quickly saves a single page.
-s, --site Saves the complete site.
-t, --tests Runs tests for this library.
$ python -m pywebcopy run_tests La mayor parte del tiempo se necesita autenticación para acceder a una determinada página. Es realmente fácil de autenticarse con pywebcopy porque utiliza WebPage.session objeto requests.Session . Y como saben, hay toneladas de tutoriales sobre la configuración de la autenticación con requests.Session .
Aquí hay un ejemplo para llenar formularios
from pywebcopy . configs import get_config
config = get_config ( 'http://httpbin.org/' )
wp = config . create_page ()
wp . get ( config [ 'project_url' ])
form = wp . get_forms ()[ 0 ]
form . inputs [ 'email' ]. value = 'bar' # etc
form . inputs [ 'password' ]. value = 'baz' # etc
wp . submit_form ( form )
wp . get_links () Puede leer más en la carpeta docs de Repositorios GitHub.