____ _ __ __ ______ _____
/ __ __ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
/ /_/ / / / / | /| / / _ / __ / / / __ / __ / / / / / /
/ ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
/_/ __, / |__/|__/___/_.___/____/____/ .___/__, / /_/
/____/ /_/ /____/
Created By : Raja Tomar License : Apache License 2.0 Email: [email protected]
O PywebCopy é uma ferramenta gratuita para copiar sites completos ou parciais localmente no seu disco rígido para visualização offline.
O PywebCopy digitalizará o site especificado e baixará seu conteúdo em seu disco rígido. Links para recursos como folhas de estilo, imagens e outras páginas no site serão automaticamente remapeadas para corresponder ao caminho local. Usando sua extensa configuração, você pode definir quais partes de um site serão copiadas e como.
O PywebCopy examinará a marcação HTML de um site e tentará descobrir todos os recursos vinculados, como outras páginas, imagens, vídeos, downloads de arquivos - tudo e qualquer coisa. Ele baixará todos os esses recursos e continuará procurando mais. Dessa maneira, o WebCopy pode "rastejar" um site inteiro e baixar tudo o que vê em um esforço para criar um fac -símile razoável do site de origem.
O PywebCopy não inclui um DOM virtual ou qualquer forma de análise JavaScript. Se um site fizer uso pesado do JavaScript para operar, é improvável que o PywebCopy possa fazer uma cópia verdadeira se não conseguir descobrir todo o site devido ao JavaScript usado para gerar links dinamicamente.
O PywebCopy não baixa o código -fonte bruto de um site, ele pode baixar apenas o que o servidor HTTP retorna. Embora faça o possível para criar uma cópia offline de um site, os sites avançados de dados podem não funcionar conforme o esperado, uma vez copiados.
pywebcopy está disponível no Pypi e é facilmente instalável usando pip
$ pip install pywebcopy
Você está pronto para ir. Leia os tutoriais abaixo para começar.
Você sempre deve verificar se o mais recente PywebCopy está instalado com sucesso.
>>> import pywebcopy
>>> pywebcopy.__version___
7.x.x
Sua versão pode ser diferente, agora você pode continuar o tutorial.
Para salvar qualquer página, basta digitar o 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 ,
)Para salvar o site completo (isso pode sobrecarregar o servidor de destino, portanto, tenha 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 ,
)A execução de testes é simples e não requer nenhuma biblioteca externa. Basta executar este comando no diretório raiz do pacote pywebcopy.
$ python -m pywebcopy --tests pywebcopy tem uma interface de linha de comando muito fácil de usar, que pode ajudá-lo a fazer a tarefa sem precisar se preocupar com o longo caminho.
$ 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 Na maioria das vezes, a autenticação é necessária para acessar uma determinada página. É realmente fácil de autenticar com pywebcopy porque usa um objeto requests.Session para atividade HTTP básica que pode ser acessada através do atributo WebPage.session . E como você sabe, há toneladas de tutoriais na criação de autenticação com requests.Session .
Aqui está um exemplo para preencher formulários
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 () Você pode ler mais na pasta docs Repositórios do GitHub.