1. Προϊόντα
  2.   HTML
  3.   Python
  4.   Beautiful Soup
 
  

Ανοιχτού κώδικα Βιβλιοθήκη Python για Ανάλυση HTML/XML & Εξαγωγή Δεδομένων

Το Beautiful Soup είναι μια κορυφαία ανοιχτού κώδικα βιβλιοθήκη Python για ανάλυση που αναλύει ακατάστατο HTML/XML, εξάγει κείμενο/συνδέσμους, περιηγείται στο δέντρο και ενισχύει σύγχρονα ροές εργασίας web scraping.

Τι είναι το Beautiful Soup;

Η εξόρυξη δεδομένων από ιστοσελίδες (web scraping) έχει γίνει μια απαραίτητη δεξιότητα για επιστήμονες δεδομένων, προγραμματιστές και ερευνητές που χρειάζονται να εξάγουν πολύτιμες πληροφορίες από ιστοσελίδες. Η Beautiful Soup αποτελεί μία από τις πιο δημοφιλείς και φιλικές προς το χρήστη βιβλιοθήκες Python για την ανάλυση εγγράφων HTML και XML. Από τη δημιουργία της το 2004, αυτό το ισχυρό εργαλείο έχει εξοικονομήσει αμέτρητες ώρες προγραμματιστών σε έργα web scraping. Το διαισθητικό API της βιβλιοθήκης, η εξαιρετική τεκμηρίωση και η ενεργή υποστήριξη της κοινότητας εξασφαλίζουν ότι τόσο οι αρχάριοι όσο και οι έμπειροι προγραμματιστές μπορούν να εξάγουν δεδομένα ιστού αποδοτικά.

Το Beautiful Soup είναι μια βιβλιοθήκη Python σχεδιασμένη ειδικά για την εξαγωγή δεδομένων από αρχεία HTML και XML. Είναι μια ισχυρή βιβλιοθήκη Python που εξοικονομεί στους προγραμματιστές ώρες ή ημέρες εργασίας σε έργα web scraping από το 2004. Με λίγες μόνο γραμμές κώδικα, μπορείτε να εκτελέσετε σύνθετα ερωτήματα όπως, απλότητα και ευκολία χρήσης, εύρεση όλων των συνδέσμων, εξαγωγή κειμενικού περιεχομένου, αυτόματη μετατροπή κωδικοποίησης, ευελιξία του parser, ανθεκτική διαχείριση σφαλμάτων, αναζήτηση και εξαγωγή συνδέσμων από ιστοσελίδες και πολλά άλλα.

Η βιβλιοθήκη Beautiful Soup μετατρέπει τη συχνά απογοητευτική εργασία εξαγωγής δεδομένων από έγγραφα HTML και XML σε μια απλή διαδικασία Pythonic, μετατρέποντας το κακώς δομημένο περιεχόμενο ιστού σε καλαίσθητα οργανωμένα δέντρα ανάλυσης που μπορείτε να περιηγηθείτε και να αναζητήσετε με απλές μεθόδους. Αυτό που παραδοσιακά απαιτούσε ώρες χειροκίνητου κώδικα μπορεί να ολοκληρωθεί σε λεπτά με το Beautiful Soup. Παραμένει το βιομηχανικό πρότυπο για προγραμματιστές Python που εισέρχονται στον κόσμο του web scraping. Η απλότητά του, σε συνδυασμό με τη δύναμη διαφορετικών parser, το καθιστά ακαταμάχητη επιλογή για την εξαγωγή δεδομένων από στατικές ιστοσελίδες.

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')

Εξαγωγή συνδέσμων από ιστοσελίδες

Η εξαγωγή συνδέσμων είναι μια κοινή εργασία web scraping, ιδιαίτερα χρήσιμη για τη δημιουργία web crawlers. Η ανοιχτού κώδικα βιβλιοθήκη Beautiful Soup έχει συμπεριλάβει υποστήριξη για τη φόρτωση ιστοσελίδων και την εξαγωγή συνδέσμων από αυτές μέσα σε εφαρμογές Python. Το παρακάτω απλό παράδειγμα κώδικα δείχνει την ανάκτηση μιας ζωντανής ιστοσελίδας χρησιμοποιώντας τη βιβλιοθήκη requests, και στη συνέχεια την εξαγωγή όλων των ετικετών anchor μέσα σε εφαρμογές Python.

Πώς να εξάγετε συνδέσμους από ιστοσελίδες χρησιμοποιώντας 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 όπως φαίνεται στο παρακάτω παράδειγμα κώδικα. Η μέθοδος επιστρέφει μια λίστα με όλες τις ετικέτες link. Στη συνέχεια, διατρέχουμε τη λίστα για να εξάγουμε το URL και το κείμενο ώστε να πάρουμε το ορατό όνομα του συνδέσμου χρησιμοποιώντας το API της Python.

Πώς να αναζητήσετε και να εξάγετε συγκεκριμένο στοιχείο 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, εξαλείφοντας ένα από τα πιο κοινά προβλήματα στο web scraping. Παρακαλώ θυμηθείτε ότι χρειάζεται να σκεφτείτε για κωδικοποιήσεις μόνο όταν το έγγραφο δεν καθορίζει κωδικοποίηση, καθώς το Beautiful Soup δεν μπορεί να την ανιχνεύσει αυτόματα. Σε αυτές τις σπάνιες περιπτώσεις, απλώς καθορίζετε τη αρχική κωδικοποίηση χειροκίνητα.

 Ελληνικά