Beautiful Soup هي مكتبة Python تستخدم لاستخراج البيانات من صفحات الويب. يقوم بإنشاء شجرة تحليل لتحليل مستندات HTML وXML، مما يجعل من السهل استخراج المعلومات المطلوبة.
يوفر برنامج Beautiful Soup العديد من الوظائف الأساسية لتجريد الويب:
لاستخدام Beautiful Soup، تحتاج إلى تثبيت المكتبة مع محلل مثل lxml أو html.parser. يمكنك تثبيتها باستخدام النقطة
#Install Beautiful Soup using pip. pip install beautifulsoup4 lxml
عند التعامل مع مواقع الويب التي تعرض المحتوى عبر صفحات متعددة، يعد التعامل مع ترقيم الصفحات أمرًا ضروريًا لاستخراج جميع البيانات.
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)
في بعض الأحيان، تكون البيانات التي تحتاج إلى استخراجها متداخلة ضمن طبقات متعددة من العلامات. وإليك كيفية التعامل مع استخراج البيانات المتداخلة.
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'])
يتطلب تجريف الويب دراسة متأنية للمخاطر القانونية والفنية والأخلاقية. ومن خلال تنفيذ الضمانات المناسبة، يمكنك التخفيف من هذه المخاطر وإجراء عمليات تجريف الويب بشكل مسؤول وفعال.
Beautiful Soup هي مكتبة قوية تعمل على تبسيط عملية تجريف الويب من خلال توفير واجهة سهلة الاستخدام للتنقل والبحث في مستندات HTML وXML. يمكنه التعامل مع مهام التحليل المختلفة، مما يجعله أداة أساسية لأي شخص يتطلع إلى استخراج البيانات من الويب.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3