____ _ __ __ ______ _____
/ __ __ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
/ /_/ / / / / | /| / / _ / __ / / / __ / __ / / / / / /
/ ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
/_/ __, / |__/|__/___/_.___/____/____/ .___/__, / /_/
/____/ /_/ /____/
Created By : Raja Tomar License : Apache License 2.0 Email: [email protected]
Pywebcopy는 오프라인 시청을 위해 전체 웹 사이트 또는 부분 웹 사이트를 하드 디스크에 로컬로 복사하기위한 무료 도구입니다.
Pywebcopy는 지정된 웹 사이트를 스캔하고 해당 내용을 하드 디스크에 다운로드합니다. 웹 사이트의 스타일 시트, 이미지 및 기타 페이지와 같은 리소스에 대한 링크는 로컬 경로와 일치하도록 자동으로 다시 표시됩니다. 광범위한 구성을 사용하면 웹 사이트의 어떤 부분이 복사 될 것인지 정의 할 수 있습니다.
Pywebcopy는 웹 사이트의 HTML 마크 업을 검사하고 다른 페이지, 이미지, 비디오, 파일 다운로드와 같은 모든 링크 된 리소스를 발견하려고 시도합니다. 이 자원을 모두 다운로드하고 더 많은 것을 검색합니다. 이러한 방식으로 WebCopy는 전체 웹 사이트를 "크롤링"하고 소스 웹 사이트의 합리적인 팩스를 만들기 위해 보는 모든 것을 다운로드 할 수 있습니다.
Pywebcopy에는 가상 DOM 또는 모든 형태의 JavaScript 구문 분석이 포함되어 있지 않습니다. 웹 사이트가 JavaScript를 많이 사용하는 경우 PywebCopy가 링크를 동적으로 생성하는 데 사용되는 JavaScript로 인해 모든 웹 사이트를 발견 할 수없는 경우 실제 사본을 만들 수 없습니다.
PywebCopy는 웹 사이트의 원시 소스 코드를 다운로드하지 않으며 HTTP 서버가 반환하는 것만 다운로드 할 수 있습니다. 웹 사이트의 오프라인 사본을 작성하는 것이 최선을 다하지만, 고급 데이터 중심 웹 사이트는 예상대로 복사 한 후에는 작동하지 않을 수 있습니다.
pywebcopy PYPI에서 사용할 수 있으며 pip 사용하여 쉽게 설치할 수 있습니다.
$ pip install pywebcopy
당신은 갈 준비가되었습니다. 시작하려면 아래 튜토리얼을 읽으십시오.
최신 Pywebcopy가 성공적으로 설치되어 있는지 항상 확인해야합니다.
>>> import pywebcopy
>>> pywebcopy.__version___
7.x.x
버전이 다를 수 있습니다. 이제 튜토리얼을 계속할 수 있습니다.
단일 페이지를 저장하려면 파이썬 콘솔을 입력하십시오.
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 로 인증하기 쉽습니다. WebPage.session 속성을 통해 액세스 할 수있는 기본 http 활동에 대한 requests.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 () GitHub 리포지토리 docs 폴더에서 자세한 내용을 읽을 수 있습니다.