____ _ __ __ ______ _____
/ __ __ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
/ /_/ / / / / | /| / / _ / __ / / / __ / __ / / / / / /
/ ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
/_/ __, / |__/|__/___/_.___/____/____/ .___/__, / /_/
/____/ /_/ /____/
Created By : Raja Tomar License : Apache License 2.0 Email: [email protected]
Pywebcopyは、オフライン視聴のためにハードディスクにローカルに完全または部分的なWebサイトをコピーするための無料のツールです。
Pywebcopyは、指定されたWebサイトをスキャンし、そのコンテンツをハードディスクにダウンロードします。 Webサイト内のスタイルシート、画像、その他のページなどのリソースへのリンクは、ローカルパスに一致するように自動的に再マップされます。その広範な構成を使用すると、Webサイトのどの部分がコピーされるか、どのようにコピーされるかを定義できます。
PywebCopyは、WebサイトのHTMLマークアップを調べ、他のページ、画像、ビデオ、ファイルのダウンロードなど、すべてのリンクされたリソースを発見しようとします。これらのすべてのリソースをダウンロードし、さらに詳細を検索し続けます。このように、WebCopyはWebサイト全体を「クロール」し、ソースWebサイトの合理的なファクシミリを作成するために見られるすべてをダウンロードできます。
pywebcopyには、仮想DOMまたはJavaScriptの解析の形式は含まれません。 WebサイトがJavaScriptを操作して動作させる場合、JavaScriptがリンクを動的に生成するために使用されているためにすべてのWebサイトを発見できない場合、Pywebcopyが真のコピーを作成できる可能性は低いです。
pywebcopyは、WebサイトのRAWソースコードをダウンロードせず、HTTPサーバーが返すもののみをダウンロードできます。 Webサイトのオフラインコピーを作成するのが最善を尽くしますが、高度なデータ駆動型Webサイトがコピーされたら、予想どおりに機能しない場合があります。
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 ,
)完全なWebサイトを保存するには(これによりターゲットサーバーに過負荷になる可能性があるため、注意してください)
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 --testspywebcopyは、非常に使いやすいコマンドラインインターフェイスがあり、長い道のりを心配することなくタスクを行うのに役立ちます。
$ 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ほとんどの場合、特定のページにアクセスするには認証が必要です。 WebPage.session属性を介してアクセスできるベースHTTPアクティビティにrequests.Sessionオブジェクトを使用するため、 pywebcopyで本当に簡単に認証できます。ご存知のように、 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 ()詳細については、GitHub Repositories docsフォルダーをご覧ください。