https://mechanicalsoup.readthedocs.io/
مكتبة بايثون لأتمتة التفاعل مع مواقع الويب. يقوم موقع MechanicalSoup تلقائيًا بتخزين ملفات تعريف الارتباط وإرسالها، ويتبع عمليات إعادة التوجيه، ويمكنه اتباع الروابط وإرسال النماذج. لا يفعل جافا سكريبت.
تم إنشاء MechanicalSoup بواسطة M Hickford، الذي كان مستخدمًا مولعًا بمكتبة Mechanize. لسوء الحظ، لم تكن Mechanize متوافقة مع Python 3 حتى عام 2019 وتوقف تطويرها لعدة سنوات. يوفر MechanicalSoup واجهة برمجة تطبيقات مشابهة، مبنية على طلبات عمالقة Python (لجلسات HTTP) وBeautifulSoup (للتنقل بين المستندات). منذ عام 2017، أصبح هذا المشروع تتم صيانته بنشاط من قبل فريق صغير يضم @hemberger و@moy.
PyPy3 مدعوم أيضًا (وتم اختباره مقابله).
قم بتنزيل وتثبيت أحدث إصدار من PyPI:
نقطة تثبيت MechanicalSoup
قم بتنزيل الإصدار التطويري وتثبيته من GitHub:
تثبيت النقطة git+https://github.com/MechanicalSoup/MechanicalSoup
التثبيت من المصدر (تثبيت الإصدار في دليل العمل الحالي):
تثبيت بيثون setup.py
(في جميع الحالات، أضف --user
إلى أمر install
لتثبيته في الدليل الرئيسي للمستخدم الحالي.)
الوثائق الكاملة متاحة على https://mechanicalsoup.readthedocs.io/. قد ترغب في الانتقال مباشرةً إلى وثائق واجهة برمجة التطبيقات (API) التي تم إنشاؤها تلقائيًا.
من الأمثلة/expl_qwant.py، الكود للحصول على النتائج من بحث Qwant:
"""مثال لاستخدام MechanicalSoup للحصول على النتائج من محرك بحث Qwant. lite.qwant.com/")# املأ البحث formbrowser.select_form('#search-form')browser["q"] = "MechanicalSoup"browser.submit_selected()# اعرض نتائج الرابط في browser.page.select('.result a'):# يعرض Qwant روابط إعادة التوجيه ، وليس عنوان URL الفعلي، لذا قم باستخراج # عنوان URL الفعلي من رابط إعادة التوجيه:href = link.attrs['href']m = re.match(r"^/redirect/[^/]*/(.*)$"، href)if m:href = urllib.parse.unquote(m.group(1))print(link.text, ' ->'، href)
المزيد من الأمثلة متوفرة في الأمثلة/.
للحصول على مثال يحتوي على نموذج أكثر تعقيدًا (مربعات الاختيار وأزرار الاختيار ومناطق النص)، اقرأ الاختبارات/test_browser.py و الاختبارات/test_form.py.
تعليمات البناء والاختبار والمساهمة في MechanicalSoup: راجع CONTRIBUTING.rst.
اقرأ الأسئلة الشائعة.