____ _ __ __ ______ _____
/ __ __ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
/ /_/ / / / / | /| / / _ / __ / / / __ / __ / / / / / /
/ ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
/_/ __, / |__/|__/___/_.___/____/____/ .___/__, / /_/
/____/ /_/ /____/
Created By : Raja Tomar License : Apache License 2.0 Email: [email protected]
PyWebcopy ist ein kostenloses Tool zum Kopieren von vollständigen oder teilweisen Websites lokal auf Ihre Hartscheibe für die Offline-Anzeige.
PyWebcopy scannt die angegebene Website und lädt ihre Inhalte auf Ihre Festplatte herunter. Links zu Ressourcen wie Stilblättern, Bildern und anderen Seiten auf der Website werden automatisch so umgestaltet, dass sie dem lokalen Pfad entsprechen. Mit seiner umfangreichen Konfiguration können Sie definieren, welche Teile einer Website kopiert werden und wie.
PyWebcopy untersucht das HTML -Aufschlag einer Website und versucht, alle verknüpften Ressourcen wie andere Seiten, Bilder, Videos, Datei -Downloads zu entdecken - alles und alles. Es wird alle Ressourcen in diesen Ressourcen heruntergeladen und weiter nach mehr suchen. Auf diese Weise kann WebCopy eine ganze Website "kriechen" und alles herunterladen, was es sieht, um ein vernünftiges Faksimile der Quellwebsite zu erstellen.
PyWebcopy enthält weder eine virtuelle DOM noch eine Form der JavaScript -Parsen. Wenn eine Website für den Betrieb von JavaScript ausreichend verwendet wird, ist es unwahrscheinlich, dass PyWebcopy eine echte Kopie erstellen kann, wenn sie nicht die gesamte Website entdecken kann, da JavaScript verwendet wird, um dynamisch Links zu generieren.
PyWebcopy lädt den RAW -Quellcode einer Website nicht herunter, sondern kann nur herunterladen, was der HTTP -Server zurückgibt. Während es sein Bestes tun wird, um eine Offline -Kopie einer Website zu erstellen, funktionieren erweiterte datengesteuerte Websites möglicherweise nicht wie erwartet, sobald sie kopiert wurden.
pywebcopy ist auf PYPI erhältlich und ist mit pip leicht installierbar
$ pip install pywebcopy
Du bist bereit zu gehen. Lesen Sie die Tutorials unten, um loszulegen.
Sie sollten immer überprüfen, ob die neueste PyWebcopy erfolgreich installiert ist.
>>> import pywebcopy
>>> pywebcopy.__version___
7.x.x
Ihre Version kann anders sein, jetzt können Sie das Tutorial fortsetzen.
Um eine einzelne Seite zu speichern, geben Sie einfach die Python -Konsole ein
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 ,
)Um die vollständige Website zu speichern (dies könnte den Zielserver überlasten, seien Sie also vorsichtig)
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 ,
)Das Ausführen von Tests ist einfach und erfordert keine externe Bibliothek. Führen Sie diesen Befehl einfach aus dem Root -Verzeichnis des Pywebcopy -Pakets aus.
$ python -m pywebcopy --tests pywebcopy verfügt über eine sehr einfach zu verwendende Befehlszeilenschnittstelle, mit der Sie Aufgaben erledigen können, ohne sich um den inneren, langen Weg sorgen zu müssen.
$ 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 Meistens ist die Authentifizierung erforderlich, um auf eine bestimmte Seite zuzugreifen. Es ist wirklich einfach zu authentifizieren mit pywebcopy , da es ein requests.Session verwendet WebPage.session Und wie Sie wissen, gibt es viele Tutorials zum Einrichten der Authentifizierung mit requests.Session .
Hier ist ein Beispiel zum Ausfüllen von Formularen
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 () Sie können mehr im Ordner docs von Github Repositories lesen.