كيفية تثبيت حساء جميل واستخدامه لمشاريع تجريف الويب؟

في عالم اليوم الذي يحركه البيانات ، أصبحت الطريقة التقليدية لجمع البيانات اليدوية قديمة. جهاز كمبيوتر متصل بالإنترنت على كل مكتب جعل الويب مصدرًا ضخمًا للبيانات. وبالتالي ، فإن الطريقة الحديثة الأكثر كفاءة وتوفيرًا للوقت لجمع البيانات هي تجريف الويب. وعندما يتعلق الأمر بكشط الويب ، فإن Python لديها أداة تسمى Beautiful Soup. في هذا المنشور ، سوف أطلعك على خطوات التثبيت الخاصة بـ Beautiful Soup لتبدأ في تجريف الويب.

قبل التثبيت والعمل مع Beautiful Soup ، دعنا نكتشف لماذا يجب أن تختارها.

ما هي الشوربة الجميلة؟

لنفترض أنك تبحث عن “تأثير COVID على صحة الناس” ووجدت بعض صفحات الويب التي تحتوي على بيانات ذات صلة. ولكن ماذا لو لم يقدموا لك خيار تنزيل بنقرة واحدة لاستعارة بياناتهم؟ هنا يأتي دور الحساء الجميل.

يعد Beautiful Soup أحد فهرس مكتبات Python لسحب البيانات من المواقع المستهدفة. إنه أكثر راحة في استرداد البيانات من صفحات HTML أو XML.

قام ليونارد ريتشاردسون بإبراز فكرة “حساء جميل” من أجل تجريف الويب في عام 2004. لكن مساهمته في المشروع لا تزال مستمرة حتى يومنا هذا. إنه يقوم بفخر بتحديث كل إصدار جديد من Beautiful Soup على حسابه على Twitter.

على الرغم من تطوير Beautiful Soup for web scraping باستخدام Python 3.8 ، إلا أنه يعمل بشكل مثالي مع كل من Python 3 و Python 2.4 أيضًا.

غالبًا ما تستخدم مواقع الويب حماية captcha لإنقاذ بياناتها من أدوات الذكاء الاصطناعي. في هذه الحالة ، يمكن إجراء بعض التغييرات على رأس “وكيل المستخدم” في Beautiful Soup أو استخدام واجهات برمجة تطبيقات حل Captcha لتقليد متصفح موثوق وخداع أداة الكشف.

ومع ذلك ، إذا لم يكن لديك الوقت لاستكشاف حساء جميل أو كنت ترغب في إجراء عملية التجريف بكفاءة وسهولة ، فلا يجب أن تفوتك التحقق من واجهة برمجة تطبيقات كشط الويب هذه ، حيث يمكنك فقط توفير عنوان URL والحصول على البيانات فيه يديك.

إذا كنت بالفعل مبرمجًا ، فلن يكون استخدام Beautiful Soup للكشط أمرًا شاقًا بسبب تركيبته المباشرة في التنقل عبر صفحات الويب واستخراج البيانات المطلوبة بناءً على التحليل الشرطي. في الوقت نفسه ، إنها صديقة للمبتدئين أيضًا.

  كيفية التعرف على رمز غير معروف برسمه

على الرغم من أن Beautiful Soup ليست للتجريف المتقدم ، إلا أنها تعمل بشكل أفضل لكشط البيانات من الملفات المكتوبة بلغات الترميز.

التوثيق الواضح والمفصل هو نقطة أخرى من الكعكة التي تم تعبئتها في أكياس الشوربة الجميلة.

لنجد طريقة سهلة لإدخال الحساء الجميل في جهازك.

كيفية تثبيت حساء جميل لكشط الويب؟

Pip – أصبح مدير حزم Python الذي تم تطويره في عام 2008 أداة قياسية بين المطورين لتثبيت أي مكتبات أو تبعيات Python.

يأتي Pip افتراضيًا مع تثبيت إصدارات Python الحديثة. وبالتالي ، إذا كان لديك أي إصدارات Python حديثة مثبتة على نظامك ، فأنت على ما يرام.

افتح موجه الأوامر واكتب الأمر pip التالي لتثبيت الحساء الجميل على الفور.

pip install beautifulsoup4

سترى شيئًا مشابهًا للقطة الشاشة التالية على شاشتك.

تأكد من تحديث برنامج تثبيت PIP إلى أحدث إصدار لتجنب الأخطاء الشائعة.

أمر تحديث مثبت pip إلى أحدث إصدار هو:

pip install --upgrade pip

لقد نجحنا في تغطية نصف الأرض في هذا المنشور.

الآن لديك حساء جميل مثبت على جهازك ، لذلك دعونا نتعمق في كيفية استخدامه لكشط الويب.

كيفية استيراد حساء جميل والعمل معه من أجل تجريف الويب؟

اكتب الأمر التالي في Python IDE لاستيراد Soup الجميل إلى نص Python النصي الحالي.

from bs4 import BeautifulSoup

الآن الحساء الجميل موجود في ملف بايثون الخاص بك لاستخدامه في الكشط.

دعنا نلقي نظرة على مثال رمز لمعرفة كيفية استخراج البيانات المطلوبة مع حساء جميل.

يمكننا إخبار Soup الجميل بالبحث عن علامات HTML محددة في موقع الويب المصدر وكشط البيانات الموجودة في تلك العلامات.

في هذه المقالة ، سأستخدم marketwatch.com ، الذي يقوم بتحديث أسعار الأسهم في الوقت الفعلي لمختلف الشركات. دعنا نسحب بعض البيانات من هذا الموقع لتتعرف على مكتبة Beautiful Soup.

استيراد حزمة “الطلبات” التي ستسمح لنا بتلقي طلبات HTTP والرد عليها و “urllib” لتحميل صفحة الويب من عنوان URL الخاص بها.

from urllib.request import urlopen
import requests

احفظ رابط صفحة الويب في متغير بحيث يمكنك الوصول إليه بسهولة لاحقًا.

url="https://www.marketwatch.com/investing/stock/amzn"

الخطوة التالية هي استخدام طريقة urlopen من مكتبة urllib لتخزين صفحة HTML في متغير. قم بتمرير عنوان URL إلى وظيفة “urlopen” واحفظ النتيجة في متغير.

page = urlopen(url)

قم بإنشاء كائن حساء جميل وقم بتحليل صفحة الويب المطلوبة باستخدام “html.parser”.

soup_obj = BeautifulSoup(page, 'html.parser')

الآن يتم تخزين نص HTML الكامل لصفحة الويب المستهدفة في المتغير “soup_obj”.

  كيفية تبديل AirPods يدويًا بين Mac و iPhone و iPad

قبل المتابعة ، دعنا نلقي نظرة على الكود المصدري للصفحة المستهدفة لمعرفة المزيد عن نص HTML والعلامات.

انقر بزر الماوس الأيمن في أي مكان على صفحة الويب باستخدام الماوس. ثم ستجد خيار فحص ، كما هو موضح أدناه.

انقر فوق فحص لعرض التعليمات البرمجية المصدر.

في كود المصدر أعلاه ، يمكنك العثور على العلامات والفئات والمزيد من المعلومات المحددة حول كل عنصر مرئي على واجهة موقع الويب.

تتيح لنا طريقة “البحث” في الحساء الجميل البحث عن علامات HTML المطلوبة واسترداد البيانات. للقيام بذلك ، نعطي اسم الفئة والعلامات للطريقة التي تستخرج بيانات محددة.

على سبيل المثال ، “Amazon.com Inc.” يظهر على صفحة الويب باسم الفئة: “اسم الشركة” موضوع تحت علامة “h1”. يمكننا إدخال هذه المعلومات في طريقة “البحث” لاستخراج مقتطف HTML ذي الصلة في متغير.

name = soup_obj.find('h1', attrs={'class': 'company__name'})

لنخرج نص HTML المخزن في المتغير “name” والنص المطلوب على الشاشة.

print(name)

print(name.text)

يمكنك مشاهدة البيانات المستخرجة مطبوعة على الشاشة.

كشط الويب موقع IMDb

يبحث الكثير منا عن تقييمات الأفلام على موقع IMBb قبل مشاهدة فيلم. سيعطيك هذا العرض التوضيحي قائمة بأعلى الأفلام تقييمًا ويساعدك على التعود على الحساء الجميل من أجل تجريف الويب.

الخطوة 1: استيراد الحساء الجميل ومكتبات الطلبات.

from bs4 import BeautifulSoup
import requests

الخطوة 2: لنقم بتعيين عنوان URL الذي نريد كشطه إلى متغير يسمى “url” لسهولة الوصول إليه في الكود.

تُستخدم حزمة “الطلبات” للحصول على صفحة HTML من عنوان URL.

url = requests.get('https://www.imdb.com/search/title/?count=100&groups=top_1000&sort=user_rating')

الخطوة 3: في مقتطف الشفرة التالي ، سنقوم بتحليل صفحة HTML لعنوان URL الحالي لإنشاء كائن من الحساء الجميل.

soup_obj = BeautifulSoup(url.text, 'html.parser')

المتغير “soup_obj” يحتوي الآن على نص HTML الكامل لصفحة الويب المطلوبة ، كما في الصورة التالية.

دعنا نفحص الكود المصدري لصفحة الويب للعثور على نص HTML للبيانات التي نريد كشطها.

  8 نصائح لتوفير عمر البطارية لجهاز iPhone الخاص بك

قم بتمرير المؤشر فوق عنصر صفحة الويب الذي تريد استخراجه. بعد ذلك ، انقر بزر الماوس الأيمن فوقه وانتقل إلى خيار الفحص لعرض الكود المصدري لهذا العنصر المحدد. سوف ترشدك المرئيات التالية بشكل أفضل.

تحتوي فئة ‘lister-list’ على جميع البيانات ذات الصلة بالأفلام ذات التصنيف الأعلى كأقسام فرعية في علامات div المتتالية.

في نص HTML لكل بطاقة فيلم ، تحت فئة “lister-item mode-advanced” ، لدينا علامة “h3” تخزن اسم الفيلم ، والرتبة ، وسنة الإصدار ، كما هو موضح في الصورة أدناه.

ملاحظة: طريقة “البحث” في عمليات البحث الجميلة في الحساء عن العلامة الأولى التي تطابق اسم الإدخال المعطى لها. على عكس “find” ، تبحث طريقة “find_all” عن جميع العلامات التي تطابق الإدخال المحدد.

الخطوة 4: يمكنك استخدام طريقتي “find” و “find_all” لحفظ نص HTML لكل اسم فيلم وترتيبه وسنه في متغير قائمة.

top_movies = soup_obj.find('div',attrs={'class': 'lister-list'}).find_all('h3')

الخطوة 5: قم بعمل تكرار لقائمة الأفلام المخزنة في المتغير: “top_movies” واستخرج اسم كل فيلم وترتيبه وسنة كل فيلم بتنسيق نصي من نص HTML الخاص به باستخدام الكود أدناه.

for movie in top_movies:
    movi_name = movie.a.text
    rank = movie.span.text.rstrip('.')
    year = movie.find('span', attrs={'class': 'lister-item-year text-muted unbold'})
    year = year.text.strip('()')
    print(movi_name + " ", rank+ " ", year+ " ")

في لقطة الشاشة الناتجة ، يمكنك رؤية قائمة الأفلام بأسمائها وترتيبها وسنة إصدارها.

يمكنك بسهولة نقل البيانات المطبوعة إلى ورقة إكسل مع بعض كود بيثون واستخدامها في تحليلك.

الكلمات الأخيرة

يرشدك هذا المنشور إلى تثبيت حساء جميل لكشط الويب. أيضًا ، من المفترض أن تساعدك أمثلة الكشط التي أظهرتها في البدء مع حساء جميل.

نظرًا لأنك مهتم بكيفية تثبيت Beautiful Soup لكشط الويب ، فإنني أوصيك بشدة بمراجعة هذا الدليل الشامل لمعرفة المزيد عن تجريف الويب باستخدام Python.