1. מוצרים
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

ספריית פייתון קוד פתוח לניתוח HTML/XML ולחילוץ נתונים

Beautiful Soup היא ספריית פייתון קוד פתוח מובילה לניתוח, שמנתחת HTML/XML מבולגן, מחלצת טקסט/קישורים, מנווטת בעץ ומניעה תהליכי סקריפטינג אינטרנט מודרניים.

מהו Beautiful Soup?

גירוד אתרי אינטרנט הפך למיומנות חיונית למדעי הנתונים, למפתחים ולחוקרים שצריכים לחלץ מידע בעל ערך מאתרים. Beautiful Soup נחשבת לאחת הספריות הפופולריות והידידותיות ביותר ב-Python לניתוח מסמכי HTML ו-XML. מאז הקמתה ב-2004, כלי חזק זה חיסך למתכנתים אינספור שעות בפרויקטי גירוד אתרים. ה-API האינטואיטיבי של הספרייה, התיעוד המצויין ותמיכת הקהילה הפעילה מבטיחים שגם למתחילים וגם למפתחים מנוסים ניתן לחלץ נתוני אינטרנט ביעילות.

Beautiful Soup היא ספריית פייתון שנועדה במיוחד לחילוץ נתונים מקבצי HTML ו‑XML. היא ספריית פייתון חזקה שחוסכת למתכנתים שעות או ימים של עבודה בפרויקטי סריקת רשת מאז 2004. עם כמה שורות קוד בלבד, ניתן לבצע שאילתות מורכבות כגון פשטות ונוחות שימוש, מציאת כל הקישורים, חילוץ תוכן טקסט, המרת קידוד אוטומטית, גמישות במפענחים, טיפול שגיאות חזק, חיפוש וחילוץ קישורים מדפי אינטרנט ועוד רבים.

ספריית Beautiful Soup משנה את המשימה המייאשת לעיתים של חילוץ נתונים ממסמכי HTML ו‑XML לתהליך פייתוני פשוט, ממירה תוכן אינטרנט בעל מבנה לקוי לעצים מפורקים מאורגנים היטב שניתן לנווט בהם ולחפש בעזרת שיטות פשוטות. מה שהיה דורש שעות של קידוד ידני ניתן לבצע בדקות עם Beautiful Soup. היא נשארת הסטנדרט בתעשייה למפתחי פייתון שנכנסים לעולם סריקת הרשת. הפשטות שלה, יחד עם כוחם של מפענחים שונים, הופכת אותה לבחירה שאין לה תחרות בחילוץ נתונים מאתרים סטטיים.

Previous Next

התחלה עם Beautiful Soup

הדרך המומלצת והקלה ביותר להתקנת Beautiful Soup היא באמצעות pip. אנא השתמשו בפקודה הבאה להתקנה חלקה.

התקן את ספריית Beautiful Soup באמצעות pip

pip install beautifulsoup4 

אתם יכולים גם להתקין זאת ידנית; הורידו את קבצי השחרור האחרונים ישירות מדף האינטרנט של Beautiful Soup.

עבודה עם מספר מפענחים

ספריית Beautiful Soup אינה מבצעת את כל הניתוח בעצמה — במקום זאת, היא פועלת מעל מפענחים מבוגרים כגון html.parser המובנה ב‑Python, מפענח lxml המהיר, ו‑html5lib הדומה לדפדפן. בהתאם לצרכים, תוכלו לתת עדיפות למהירות או לעמידה בתקנים. ארכיטקטורה זו מספקת לכם גמישות לבחור את המפענח המתאים ביותר לצרכיכם, להחליף מהירות ניתוח בגמישות, לנסות אסטרטגיות ניתוח שונות מבלי לשנות את קוד ה‑Beautiful Soup שלכם, וכן הלאה. הקוד הפשוט הבא מציג כיצד מפתחים יכולים להשתמש במפענחים שונים עם Beautiful Soup.

איך להשתמש במפרקים מרובים לניתוח מסמכי HTML בתוך אפליקציות Python?

# Using different parsers with Beautiful Soup
html_doc = "

תוכן לדוגמה

" # Using lxml parser (fast) soup_lxml = BeautifulSoup(html_doc, 'lxml') # Using html5lib parser (slower but more lenient) soup_html5lib = BeautifulSoup(html_doc, 'html5lib') # Using Python's built-in parser soup_builtin = BeautifulSoup(html_doc, 'html.parser')

חילוץ קישורים מדפי אינטרנט

חילוץ קישורים הוא משימה נפוצה בתחום סריקת האינטרנט, במיוחד שימושית לבניית סורקים. ספריית הקוד הפתוח Beautiful Soup כוללת תמיכה בטעינת דפי אינטרנט והוצאת קישורים מהם בתוך יישומי פייתון. דוגמת הקוד הפשוטה הבאה מדגימה קבלת דף אינטרנט חי באמצעות ספריית requests, ולאחר מכן חילוץ כל תגי העוגן (anchor) בתוך יישומי פייתון.

איך לחלץ קישורים מדפי אינטרנט באמצעות Python?

from bs4 import BeautifulSoup
import requests

# Fetch a real webpage
url = 'https://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

# Extract all links
links = soup.find_all('a')

print(f"Found {len(links)} links:")
for link in links:
    href = link.get('href')
    text = link.get_text().strip()
    print(f"Text: {text} | URL: {href}")

# Filter links by criteria
external_links = []
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('http'):
        external_links.append(href)

print(f"\nFound {len(external_links)} external links")

חיפוש אלמנטים ספציפיים ב-HTML

אחד מהחוזקות הגדולות של Beautiful Soup הוא האופן שבו היא מאפשרת לך לחפש ב‑HTML באופן טבעי, כמעט כמו קריאת אנגלית פשוטה. במקום להתמודד עם API מורכבות של DOM, אתה מתאר מה שאתה רוצה, ו‑Beautiful Soup מוצאת זאת עבורך. נניח שאתה רוצה למצוא את כל הקישורים בעמוד. אתה יכול להשתמש במתודה find_all כפי שמוצג בדוגמת הקוד הבאה. המתודה מחזירה רשימה של כל תגי הקישור. לאחר מכן אנו עוברים עליהם כדי לחלץ את ה‑URL והטקסט ולקבל את שם הקישור המוצג באמצעות API של פייתון.

איך לחפש ולחלץ אלמנט HTML ספציפי מדף אינטרנט באמצעות API של Python?

# Extract all anchor tags
links = soup.find_all('a')

for link in links:
    href = link.get('href')
    text = link.text.strip()
    print(f"Text: {text} | URL: {href}")

טיפול אוטומטי בקידוד

אחת התכונות הנוחות ביותר של Beautiful Soup היא המרת הקידוד האוטומטית שלה. הספרייה ממירה באופן אוטומטי מסמכים נכנסים ל‑Unicode ומסמכים יוצאים ל‑UTF-8, מה שמסיר אחת מהכאבים הנפוצים ביותר בגירוד אתרי אינטרנט. אנא זכרו שעליכם לחשוב על קידודים רק כאשר המסמך אינו מציין קידוד, מכיוון ש‑Beautiful Soup אינה יכולה לזהות קידוד באופן אוטומטי. במקרים נדירים אלה, פשוט מציינים את הקידוד המקורי ידנית.

 עִברִית