"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يتم استخدام الحساء الجميل لاستخراج البيانات من شبكة الويب العامة

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

تم النشر بتاريخ 2024-08-01
تصفح:125

How Beautiful Soup is used to extract data out of the Public Web

Beautiful Soup هي مكتبة Python تستخدم لاستخراج البيانات من صفحات الويب. يقوم بإنشاء شجرة تحليل لتحليل مستندات HTML وXML، مما يجعل من السهل استخراج المعلومات المطلوبة.

يوفر برنامج Beautiful Soup العديد من الوظائف الأساسية لتجريد الويب:

  1. التنقل في شجرة التحليل: يمكنك التنقل بسهولة في شجرة التحليل والبحث عن العناصر والعلامات والسمات.
  2. تعديل شجرة التحليل: تسمح لك بتعديل شجرة التحليل، بما في ذلك إضافة وإزالة وتحديث العلامات والسمات.
  3. تنسيق الإخراج: يمكنك تحويل شجرة التحليل مرة أخرى إلى سلسلة، مما يجعل من السهل حفظ المحتوى المعدل.

لاستخدام Beautiful Soup، تحتاج إلى تثبيت المكتبة مع محلل مثل lxml أو html.parser. يمكنك تثبيتها باستخدام النقطة

#Install Beautiful Soup using pip.
pip install beautifulsoup4 lxml

التعامل مع ترقيم الصفحات

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

  1. تحديد بنية ترقيم الصفحات: افحص موقع الويب لفهم كيفية تنظيم ترقيم الصفحات (على سبيل المثال، زر الصفحة التالية أو الروابط المرقمة).
  2. التكرار عبر الصفحات: استخدم حلقة للتكرار خلال كل صفحة واستخراج البيانات.
  3. تحديث عنوان URL أو المعلمات: تعديل عنوان URL أو المعلمات لجلب محتوى الصفحة التالية.
import requests
from bs4 import BeautifulSoup

base_url = 'https://example-blog.com/page/'
page_number = 1
all_titles = []

while True:
    # Construct the URL for the current page
    url = f'{base_url}{page_number}'
    response = requests.get(url)
    soup = BeautifulSoup(response.content, 'html.parser')

    # Find all article titles on the current page
    titles = soup.find_all('h2', class_='article-title')
    if not titles:
        break  # Exit the loop if no titles are found (end of pagination)

    # Extract and store the titles
    for title in titles:
        all_titles.append(title.get_text())

    # Move to the next page
    page_number  = 1

# Print all collected titles
for title in all_titles:
    print(title)

استخراج البيانات المتداخلة

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

  1. انتقل إلى العلامات الأصلية: ابحث عن العلامات الأصلية التي تحتوي على البيانات المتداخلة.
  2. استخراج العلامات المتداخلة: داخل كل علامة أصل، ابحث عن العلامات المتداخلة واستخرجها.
  3. التكرار من خلال العلامات المتداخلة: التكرار من خلال العلامات المتداخلة لاستخراج المعلومات المطلوبة.
import requests
from bs4 import BeautifulSoup

url = 'https://example-blog.com/post/123'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Find the comments section
comments_section = soup.find('div', class_='comments')

# Extract individual comments
comments = comments_section.find_all('div', class_='comment')

for comment in comments:
    # Extract author and content from each comment
    author = comment.find('span', class_='author').get_text()
    content = comment.find('p', class_='content').get_text()
    print(f'Author: {author}\nContent: {content}\n')

التعامل مع طلبات أجاكس

تستخدم العديد من مواقع الويب الحديثة AJAX لتحميل البيانات ديناميكيًا. يتطلب التعامل مع AJAX تقنيات مختلفة، مثل مراقبة طلبات الشبكة باستخدام أدوات مطور المتصفح وتكرار تلك الطلبات في مكشطة البيانات الخاصة بك.

import requests
from bs4 import BeautifulSoup

# URL to the API endpoint providing the AJAX data
ajax_url = 'https://example.com/api/data?page=1'
response = requests.get(ajax_url)
data = response.json()

# Extract and print data from the JSON response
for item in data['results']:
    print(item['field1'], item['field2'])

مخاطر تجريف الويب

يتطلب تجريف الويب دراسة متأنية للمخاطر القانونية والفنية والأخلاقية. ومن خلال تنفيذ الضمانات المناسبة، يمكنك التخفيف من هذه المخاطر وإجراء عمليات تجريف الويب بشكل مسؤول وفعال.

  • انتهاكات شروط الخدمة: تحظر العديد من مواقع الويب صراحةً الحذف في شروط الخدمة (ToS) الخاصة بها. قد يؤدي انتهاك هذه الشروط إلى اتخاذ إجراءات قانونية.
  • قضايا الملكية الفكرية: قد يؤدي نسخ المحتوى دون إذن إلى انتهاك حقوق الملكية الفكرية، مما يؤدي إلى نزاعات قانونية.
  • حظر IP: قد تكتشف مواقع الويب وتحظر عناوين IP التي تظهر سلوك التجريد.
  • حظر الحساب: إذا تم تنفيذ عملية الاستخلاص على مواقع الويب التي تتطلب مصادقة المستخدم، فقد يتم حظر الحساب المستخدم في عملية الاستخلاص.

Beautiful Soup هي مكتبة قوية تعمل على تبسيط عملية تجريف الويب من خلال توفير واجهة سهلة الاستخدام للتنقل والبحث في مستندات HTML وXML. يمكنه التعامل مع مهام التحليل المختلفة، مما يجعله أداة أساسية لأي شخص يتطلع إلى استخراج البيانات من الويب.

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/marcosconci/how-beautiful-soup-is-used-to-extract-data-out-of-the-public-web-51gg?1 إذا كان هناك أي انتهاك يرجى الاتصال بـ Study_golang @163.comdelete
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3