Πώς να εγκαταστήσετε το Beautiful Soup και να το χρησιμοποιήσετε για έργα απόξεσης Ιστού;

Στον σημερινό κόσμο που βασίζεται σε δεδομένα, η παραδοσιακή μέθοδος χειροκίνητης συλλογής δεδομένων είναι ξεπερασμένη. Ένας υπολογιστής με σύνδεση στο διαδίκτυο σε κάθε γραφείο έκανε τον Ιστό μια τεράστια πηγή δεδομένων. Έτσι, η πιο αποτελεσματική και πιο χρονοβόρα σύγχρονη μέθοδος συλλογής δεδομένων είναι το web scraping. Και όσον αφορά το web scraping, η Python έχει ένα εργαλείο που ονομάζεται Beautiful Soup. Σε αυτήν την ανάρτηση, θα σας καθοδηγήσω στα βήματα εγκατάστασης του Beautiful Soup για να ξεκινήσετε με το web scraping.

Πριν εγκαταστήσετε και εργαστείτε με το Beautiful Soup, ας μάθουμε γιατί πρέπει να το κάνετε.

Τι είναι μια όμορφη σούπα;

Ας υποκριθούμε ότι ερευνάτε την «επίδραση του COVID στην υγεία των ανθρώπων» και έχετε βρει μερικές ιστοσελίδες που περιέχουν σχετικά δεδομένα. Τι γίνεται όμως αν δεν σας προσφέρουν μια επιλογή λήψης με ένα κλικ για να δανειστείτε τα δεδομένα τους; Εδώ μπαίνει στο παιχνίδι η Όμορφη Σούπα.

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

Ο Leonard Richardson έφερε στο φως την ιδέα του Beautiful Soup για το ξύσιμο του ιστού το 2004. Αλλά η συνεισφορά του στο έργο συνεχίζεται μέχρι σήμερα. Ενημερώνει περήφανα κάθε νέα κυκλοφορία του Beautiful Soup στον λογαριασμό του στο Twitter.

Αν και το Beautiful Soup for web scraping αναπτύχθηκε χρησιμοποιώντας Python 3.8, λειτουργεί τέλεια και με Python 3 και Python 2.4 επίσης.

Συχνά οι ιστότοποι χρησιμοποιούν προστασία captcha για να διασώσουν τα δεδομένα τους από εργαλεία τεχνητής νοημοσύνης. Σε αυτήν την περίπτωση, μερικές αλλαγές στην κεφαλίδα «user-agent» στο Beautiful Soup ή χρησιμοποιώντας API επίλυσης Captcha μπορούν να μιμηθούν ένα αξιόπιστο πρόγραμμα περιήγησης και να εξαπατήσουν το εργαλείο ανίχνευσης.

Ωστόσο, εάν δεν έχετε χρόνο να εξερευνήσετε το Beautiful Soup ή θέλετε το ξύσιμο να γίνει αποτελεσματικά και άνετα, τότε δεν πρέπει να παραλείψετε να ελέγξετε αυτό το web scraping API, όπου μπορείτε απλώς να δώσετε μια διεύθυνση URL και να λάβετε τα δεδομένα στο τα χέρια σου.

  Πώς να προσθέσετε φωτογραφίες στην αρχική οθόνη του iPhone σας

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

Αν και το Beautiful Soup δεν προορίζεται για προηγμένη απόξεση, λειτουργεί καλύτερα για να ξύνει τα δεδομένα από αρχεία γραμμένα σε γλώσσες σήμανσης.

Η σαφής και λεπτομερής τεκμηρίωση είναι ένα άλλο σημείο που έφερε το Beautiful Soup.

Ας βρούμε έναν εύκολο τρόπο για να βάλετε όμορφη Σούπα στη μηχανή σας.

Πώς να εγκαταστήσετε το Beautiful Soup for Web Scraping;

Pip – Ένας εύκολος διαχειριστής πακέτων Python που αναπτύχθηκε το 2008 είναι πλέον ένα τυπικό εργαλείο μεταξύ των προγραμματιστών για την εγκατάσταση οποιωνδήποτε βιβλιοθηκών ή εξαρτήσεων Python.

Το Pip είναι προεπιλεγμένο με την εγκατάσταση των πρόσφατων εκδόσεων Python. Επομένως, εάν έχετε εγκατεστημένη στο σύστημά σας οποιεσδήποτε πρόσφατες εκδόσεις Python, είστε έτοιμοι.

Ανοίξτε τη γραμμή εντολών και πληκτρολογήστε την ακόλουθη εντολή pip για να εγκαταστήσετε αμέσως το όμορφο Soup.

pip install beautifulsoup4

Θα δείτε κάτι παρόμοιο με το παρακάτω στιγμιότυπο οθόνης στην οθόνη σας.

Βεβαιωθείτε ότι έχετε ενημερώσει το πρόγραμμα εγκατάστασης PIP στην πιο πρόσφατη έκδοση για να αποφύγετε κοινά σφάλματα.

Η εντολή για την ενημέρωση του προγράμματος εγκατάστασης pip στην πιο πρόσφατη έκδοση είναι:

pip install --upgrade pip

Έχουμε καλύψει με επιτυχία το μισό έδαφος σε αυτήν την ανάρτηση.

Τώρα έχετε εγκαταστήσει το Beautiful Soup στο μηχάνημά σας, οπότε ας δούμε πώς να το χρησιμοποιήσετε για απόξεση ιστού.

Πώς να εισαγάγετε και να εργαστείτε με την όμορφη σούπα για απόξεση ιστού;

Πληκτρολογήστε την ακόλουθη εντολή στο python IDE σας για να εισαγάγετε το όμορφο Soup στο τρέχον σενάριο python.

from bs4 import BeautifulSoup

Τώρα το Beautiful Soup βρίσκεται στο αρχείο Python για χρήση για απόξεση.

Ας δούμε ένα παράδειγμα κώδικα για να μάθουμε πώς να εξαγάγετε τα επιθυμητά δεδομένα με το όμορφο Soup.

Μπορούμε να πούμε στην όμορφη Soup να αναζητήσει συγκεκριμένες ετικέτες HTML στον ιστότοπο προέλευσης και να ξύσει τα δεδομένα που υπάρχουν σε αυτές τις ετικέτες.

Σε αυτό το κομμάτι, θα χρησιμοποιήσω το marketwatch.com, το οποίο ενημερώνει τις τιμές των μετοχών σε πραγματικό χρόνο διαφόρων εταιρειών. Ας αντλήσουμε ορισμένα δεδομένα από αυτόν τον ιστότοπο για να εξοικειωθείτε με τη βιβλιοθήκη Beautiful Soup.

  8 καλύτερα API διακοπών για να δημιουργήσετε την εφαρμογή σας γύρω από τα ταξίδια

Εισαγάγετε πακέτο “αιτημάτων” που θα μας επιτρέψει να λαμβάνουμε και να απαντάμε σε αιτήματα 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)

Δημιουργήστε ένα αντικείμενο Beautiful Soup και αναλύστε την επιθυμητή ιστοσελίδα χρησιμοποιώντας το “html.parser”.

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

Τώρα ολόκληρο το σενάριο HTML της στοχευμένης ιστοσελίδας αποθηκεύεται στη μεταβλητή ‘soup_obj’.

Πριν προχωρήσουμε, ας δούμε τον πηγαίο κώδικα της σελίδας που στοχεύουμε για να μάθετε περισσότερα σχετικά με το σενάριο HTML και τις ετικέτες.

Κάντε δεξί κλικ οπουδήποτε στην ιστοσελίδα με το ποντίκι σας. Στη συνέχεια, θα βρείτε μια επιλογή επιθεώρησης, όπως εμφανίζεται παρακάτω.

Κάντε κλικ στο inspect για να δείτε τον πηγαίο κώδικα.

Στον παραπάνω πηγαίο κώδικα, μπορείτε να βρείτε ετικέτες, κλάσεις και πιο συγκεκριμένες πληροφορίες για κάθε στοιχείο που είναι ορατό στη διεπαφή του ιστότοπου.

Η μέθοδος “εύρεσης” στο όμορφο Soup μας επιτρέπει να αναζητήσουμε τις ζητούμενες ετικέτες HTML και να ανακτήσουμε τα δεδομένα. Για να γίνει αυτό, δίνουμε το όνομα της κλάσης και τις ετικέτες στη μέθοδο που εξάγει συγκεκριμένα δεδομένα.

Για παράδειγμα, “Amazon.com Inc.” που εμφανίζεται στην ιστοσελίδα έχει το όνομα της κλάσης: ‘company__name’ με ετικέτα ‘h1’. Μπορούμε να εισαγάγουμε αυτές τις πληροφορίες στη μέθοδο ‘εύρεσης’ για να εξαγάγουμε το σχετικό απόσπασμα HTML σε μια μεταβλητή.

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

Ας εξάγουμε το σενάριο HTML που είναι αποθηκευμένο στη μεταβλητή “όνομα” και το απαιτούμενο κείμενο στην οθόνη.

print(name)

print(name.text)

Μπορείτε να δείτε τα εξαγόμενα δεδομένα που εκτυπώνονται στην οθόνη.

Web Ξύστε τον ιστότοπο του IMDb

Πολλοί από εμάς αναζητούμε αξιολογήσεις ταινιών στον ιστότοπο του IMBb πριν παρακολουθήσουν μια ταινία. Αυτή η επίδειξη θα σας δώσει μια λίστα με κορυφαίες ταινίες και θα σας βοηθήσει να συνηθίσετε την όμορφη Soup for web scraping.

Βήμα 1: Εισαγάγετε τις όμορφες βιβλιοθήκες Soup and requests.

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.

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

Η μεταβλητή “soup_obj” περιέχει πλέον ολόκληρο το σενάριο HTML της επιθυμητής ιστοσελίδας, όπως στην παρακάτω εικόνα.

Ας ελέγξουμε τον πηγαίο κώδικα της ιστοσελίδας για να βρούμε το σενάριο HTML των δεδομένων που θέλουμε να ξύσουμε.

Τοποθετήστε το δείκτη του ποντικιού πάνω από το στοιχείο της ιστοσελίδας που θέλετε να εξαγάγετε. Στη συνέχεια, κάντε δεξί κλικ σε αυτό και μεταβείτε με την επιλογή επιθεώρησης για να δείτε τον πηγαίο κώδικα του συγκεκριμένου στοιχείου. Τα παρακάτω γραφικά θα σας καθοδηγήσουν καλύτερα.

Η κλάση ‘lister-list’ περιέχει όλα τα δεδομένα που σχετίζονται με ταινίες με κορυφαία βαθμολογία ως υποδιαιρέσεις σε διαδοχικές ετικέτες div.

Στη δέσμη ενεργειών HTML κάθε κάρτας ταινίας, κάτω από την κατηγορία «lister-item mode-advanced», έχουμε μια ετικέτα «h3» που αποθηκεύει το όνομα της ταινίας, την κατάταξη και το έτος κυκλοφορίας, όπως επισημαίνεται στην παρακάτω εικόνα.

Σημείωση: Η μέθοδος “εύρεσης” στο όμορφο Soup αναζητά την πρώτη ετικέτα που ταιριάζει με το όνομα εισαγωγής που της έχει δοθεί. Σε αντίθεση με το “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+ " ")

Στο στιγμιότυπο οθόνης εξόδου, μπορείτε να δείτε τη λίστα των ταινιών με το όνομα, την κατάταξη και το έτος κυκλοφορίας τους.

Μπορείτε να μετακινήσετε αβίαστα τα εκτυπωμένα δεδομένα σε ένα φύλλο excel με κάποιο κώδικα python και να τον χρησιμοποιήσετε για την ανάλυσή σας.

Τελικές Λέξεις

Αυτή η ανάρτηση σας καθοδηγεί στην εγκατάσταση της όμορφης Σούπας για απόξεση ιστού. Επίσης, τα παραδείγματα απόξεσης που έδειξα θα σας βοηθήσουν να ξεκινήσετε με το Beautiful Soup.

Καθώς ενδιαφέρεστε για το πώς να εγκαταστήσετε το Beautiful Soup for web scraping, σας συνιστώ ανεπιφύλακτα να δείτε αυτόν τον κατανοητό οδηγό για να μάθετε περισσότερα σχετικά με το web scraping χρησιμοποιώντας Python.