____ _ __ __ ______ _____
/ __ __ _| | / /__ / /_ / ____/___ ____ __ __ /__ /
/ /_/ / / / / | /| / / _ / __ / / / __ / __ / / / / / /
/ ____/ /_/ /| |/ |/ / __/ /_/ / /___/ /_/ / /_/ / /_/ / / /
/_/ __, / |__/|__/___/_.___/____/____/ .___/__, / /_/
/____/ /_/ /____/
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 هناك حاجة إلى مصادقة الوقت للوصول إلى صفحة معينة. من السهل المصادقة WebPage.session خلال pywebcopy لأنه يستخدم 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 () يمكنك قراءة المزيد في مجلد docs مستودعات Github.