____ _ __ __ ______ _____
/ __ __ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
/ /_/ / / / / | /| / / _ / __ / / / __ / __ / / / / / /
/ ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
/_/ __, / |__/|__/___/_.___/____/____/ .___/__, / /_/
/____/ /_/ /____/
Created By : Raja Tomar License : Apache License 2.0 Email: [email protected]
PyWebCopy est un outil gratuit pour copier localement des sites Web complets ou partiels sur votre disque dur pour une visualisation hors ligne.
PyWebCopy analysera le site Web spécifié et téléchargera son contenu sur votre disque dur. Les liens vers des ressources telles que les feuilles de style, les images et autres pages du site Web seront automatiquement remappées pour correspondre au chemin local. En utilisant sa configuration approfondie, vous pouvez définir les parties d'un site Web copiées et comment.
PyWebCopy examinera la majoration HTML d'un site Web et tentera de découvrir toutes les ressources liées telles que d'autres pages, images, vidéos, téléchargements de fichiers - tout et n'importe quoi. Il téléchargera toutes les ressources de ces thèses et continuera d'en rechercher plus. De cette manière, WebCopy peut "ramper" un site Web entier et télécharger tout ce qu'il voit dans le but de créer un fac-similé raisonnable du site Web de la source.
PyWebCopy n'inclut pas un DOM virtuel ou aucune forme d'analyse JavaScript. Si un site Web utilise fortement JavaScript pour fonctionner, il est peu probable que PyWebCopy soit en mesure de faire une copie vraie s'il n'est pas en mesure de découvrir tout le site Web en raison de l'utilisation de JavaScript pour générer dynamiquement des liens.
PyWebCopy ne télécharge pas le code source brut d'un site Web, il ne peut que télécharger ce que le serveur HTTP renvoie. Bien qu'il fasse de son mieux pour créer une copie hors ligne d'un site Web, les sites Web avancés des données peuvent ne pas fonctionner comme prévu une fois qu'ils ont été copiés.
pywebcopy est disponible sur PYPI et est facilement instalable à l'aide de pip
$ pip install pywebcopy
Vous êtes prêt à partir. Lisez les tutoriels ci-dessous pour commencer.
Vous devez toujours vérifier si le dernier PyWebCopy est installé avec succès.
>>> import pywebcopy
>>> pywebcopy.__version___
7.x.x
Votre version peut être différente, vous pouvez maintenant continuer le tutoriel.
Pour enregistrer une seule page, tapez simplement la console 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 ,
)Pour enregistrer le site Web complet (cela pourrait surcharger le serveur Target, alors soyez prudent)
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 ,
)L'exécution de tests est simple et ne nécessite aucune bibliothèque externe. Exécutez simplement cette commande à partir du répertoire racine du package pywebcopy.
$ python -m pywebcopy --tests pywebcopy a une interface de ligne de commande très facile à utiliser qui peut vous aider à faire la tâche sans avoir à vous soucier de la longue voie intérieure.
$ 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 plupart du temps, l'authentification est nécessaire pour accéder à une certaine page. C'est vraiment facile à authentifier avec pywebcopy car il utilise un objet requests.Session pour l'activité HTTP de base qui peut être accessible via l'attribut WebPage.session . Et comme vous le savez, il existe des tonnes de tutoriels sur la configuration de l'authentification avec requests.Session .
Voici un exemple pour remplir les formulaires
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 () Vous pouvez en savoir plus dans le dossier docs GitHub Repositories.