____ _ __ __ ______ _____
/ __ __ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
/ /_/ / / / / | /| / / _ / __ / / / __ / __ / / / / / /
/ ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
/_/ __, / |__/|__/___/_.___/____/____/ .___/__, / /_/
/____/ /_/ /____/
Created By : Raja Tomar License : Apache License 2.0 Email: [email protected]
Pywebcopy-это бесплатный инструмент для копирования полных или частичных веб-сайтов локально на ваш жесткий диск для просмотра в автономном режиме.
Pywebcopy сканит указанный веб-сайт и загрузит свой контент на ваш жесткий диск. Ссылки на такие ресурсы, как стилевые листы, изображения и другие страницы на веб-сайте, будут автоматически перенаправлены, чтобы соответствовать локальному пути. Используя его обширную конфигурацию, вы можете определить, какие части веб -сайта будут скопированы и как.
Pywebcopy изучит HTML -разметку веб -сайта и попытается обнаружить все связанные ресурсы, такие как другие страницы, изображения, видео, загрузки файлов - все и все. Он загрузит все ресурсы и продолжит искать больше. Таким образом, WebCopy может «сканировать» весь веб -сайт и загружать все, что он видит, чтобы создать разумную факсимиле на веб -сайте Source.
PywebCopy не включает виртуальный DOM или какую -либо форму анализа JavaScript. Если веб -сайт использует JavaScript для работы, маловероятно, что PywebCopy сможет сделать настоящую копию, если он не сможет обнаружить весь веб -сайт из -за того, что JavaScript используется для динамического генерирования ссылок.
PywebCopy не загружает необработанный код исходного сайте, он может загружать только то, что возвращает сервер HTTP. Несмотря на то, что он сделает все возможное, чтобы создать автономную копию веб -сайта, передовые веб -сайты, управляемые данными, могут не работать, как и ожидалось, как только они будут скопированы.
pywebcopy доступен на PYPI и легко устанавливается с помощью pip
$ pip install pywebcopy
Вы готовы к работе. Прочитайте учебники ниже, чтобы начать.
Вы всегда должны проверять, успешно ли установлена последняя pywebcopy.
>>> import pywebcopy
>>> pywebcopy.__version___
7.x.x
Ваша версия может быть другой, теперь вы можете продолжить учебник.
Чтобы сохранить любую отдельную страницу, просто введите консоли 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 ,
)Чтобы сохранить полный веб -сайт (это может перегрузить целевой сервер, так что будьте осторожны)
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 ,
)Запуск тестов прост и не требует никакой внешней библиотеки. Просто запустите эту команду из корневого каталога пакета PywebCopy.
$ python -m pywebcopy --tests У pywebcopy есть очень прост в использовании интерфейс командной строки, который может помочь вам выполнить задачу без необходимости беспокоиться о внутреннем длине.
$ 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 Большую часть времени аутентификация необходима для доступа к определенной странице. Его очень простая в аутентификации с помощью pywebcopy , поскольку он использует объект requests.Session WebPage.session И, как вы знаете, есть множество учебных пособий по настройке аутентификации с помощью requests.Session .
Вот пример заполнения форм
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 () Вы можете прочитать больше в папке docs Repositories GitHub.