Γνωρίζατε ότι είναι δυνατή η απόξεση δεδομένων από έναν ιστότοπο χρησιμοποιώντας τα Φύλλα Google; Δείτε πώς μπορείτε να το κάνετε.
Το web scraping είναι μια ισχυρή τεχνική για την εξαγωγή πληροφοριών από ιστότοπους και την αυτόματη ανάλυση τους. Αν και μπορείτε να το κάνετε χειροκίνητα, μπορεί να είναι μια κουραστική και χρονοβόρα εργασία. Τα εργαλεία απόξεσης ιστού κάνουν τη διαδικασία ταχύτερη και πιο αποτελεσματική, ενώ κοστίζουν λιγότερο.
Είναι ενδιαφέρον ότι τα Φύλλα Google έχουν τη δυνατότητα να είναι το μοναδικό σας εργαλείο απόσυρσης ιστού, χάρη στη λειτουργία IMPORTXML. Με το IMPORTXML, μπορείτε εύκολα να αφαιρέσετε δεδομένα από ιστοσελίδες και να τα χρησιμοποιήσετε για ανάλυση, αναφορά ή οποιεσδήποτε άλλες εργασίες που βασίζονται σε δεδομένα.
Η συνάρτηση IMPORTXML στα Φύλλα Google
Τα Φύλλα Google παρέχουν μια ενσωματωμένη λειτουργία που ονομάζεται IMPORTXML, η οποία σας επιτρέπει να εισάγετε δεδομένα από μορφές ιστού όπως XML, HTML, RSS και CSV. Αυτή η λειτουργία μπορεί να αλλάξει το παιχνίδι εάν θέλετε να συλλέγετε δεδομένα από ιστότοπους χωρίς να καταφεύγετε σε πολύπλοκη κωδικοποίηση.
Ακολουθεί η βασική σύνταξη του IMPORTXML:
=IMPORTXML(url, xpath_query)
- url: Η διεύθυνση URL της ιστοσελίδας από την οποία θέλετε να αφαιρέσετε δεδομένα.
- xpath_query: Το ερώτημα XPath που ορίζει τα δεδομένα που θέλετε να εξαγάγετε.
Η XPath (Γλώσσα διαδρομής XML) είναι μια γλώσσα που χρησιμοποιείται για την πλοήγηση σε έγγραφα XML, συμπεριλαμβανομένου του HTML—επιτρέποντάς σας να καθορίσετε τη θέση των δεδομένων μέσα σε μια δομή HTML. Η κατανόηση των ερωτημάτων XPath είναι απαραίτητη για τη σωστή χρήση του IMPORTXML.
Κατανόηση του XPath
Το XPath παρέχει διάφορες λειτουργίες και εκφράσεις για την πλοήγηση και το φιλτράρισμα δεδομένων μέσα σε ένα έγγραφο HTML. Ένας ολοκληρωμένος οδηγός XML και XPath ξεφεύγει από το πεδίο εφαρμογής αυτού του άρθρου, επομένως θα αρκεστούμε σε ορισμένες βασικές έννοιες του XPath:
- Επιλογή στοιχείων: Μπορείτε να επιλέξετε στοιχεία χρησιμοποιώντας / και // να υποδηλώνει μονοπάτια. Για παράδειγμα, /html/body/div επιλέγει όλα τα στοιχεία div στο σώμα ενός εγγράφου.
- Επιλογή Χαρακτηριστικού: Για να επιλέξετε χαρακτηριστικά, μπορείτε να χρησιμοποιήσετε @. Για παράδειγμα, //@href επιλέγει όλα href χαρακτηριστικά στη σελίδα.
- Κατηγορηματικά φίλτρα: Μπορείτε να φιλτράρετε στοιχεία χρησιμοποιώντας κατηγορήματα που περικλείονται σε αγκύλες ([ ]). Για παράδειγμα, /div[@class="container"] επιλέγει όλα div στοιχεία με την τάξη δοχείο.
- Λειτουργίες: Το XPath παρέχει διάφορες λειτουργίες όπως π.χ περιέχει(), ξεκινάει με(), και κείμενο() για να εκτελέσετε συγκεκριμένες ενέργειες, όπως έλεγχο για περιεχόμενο κειμένου ή τιμές χαρακτηριστικών.
Πώς να εξαγάγετε το XPath από έναν ιστότοπο
Μέχρι στιγμής, γνωρίζετε τη σύνταξη IMPORTXML, γνωρίζετε τη διεύθυνση URL του ιστότοπου και γνωρίζετε ποιο στοιχείο θέλετε να εξαγάγετε. Πώς όμως αποκτάτε το XPath του στοιχείου;
Δεν χρειάζεται να γνωρίζετε τη δομή ενός ιστότοπου εξ ολοκλήρου για να εξαγάγετε τα δεδομένα του με το IMPORTXML. Στην πραγματικότητα, κάθε πρόγραμμα περιήγησης έχει ένα εξαιρετικό εργαλείο που σας επιτρέπει να αντιγράψετε αμέσως το XPath οποιουδήποτε στοιχείου.
Το εργαλείο Inspect Element σας επιτρέπει να εξαγάγετε το XPath από στοιχεία ιστότοπου. Δείτε πώς:
- Μεταβείτε στην ιστοσελίδα που θέλετε να ξύσετε χρησιμοποιώντας το πρόγραμμα περιήγησης ιστού που προτιμάτε.
- Εντοπίστε το στοιχείο που θέλετε να ξύσετε.
- Κάντε δεξί κλικ στο στοιχείο.
- Επιλέγω Επιθεωρήστε το στοιχείο από το μενού με το δεξί κλικ. Το πρόγραμμα περιήγησής σας θα ανοίξει έναν πίνακα που εμφανίζει τον κώδικα HTML της ιστοσελίδας. Το σχετικό στοιχείο HTML θα τονιστεί στον κώδικα.
- Στον πίνακα Inspect Element, κάντε δεξί κλικ στο επισημασμένο στοιχείο στον κώδικα HTML.
- Κάντε κλικ Αντιγράψτε το XPath για να αντιγράψετε τη διεύθυνση XPath του στοιχείου στο πρόχειρό σας.
Τώρα που έχετε όλα όσα χρειάζεστε, ήρθε η ώρα να δείτε το IMPORTXML σε δράση και να ξύσετε μερικούς συνδέσμους.
Μπορείτε να χρησιμοποιήσετε το IMPORTXML για να σκουπίσετε όλα τα είδη δεδομένων από ιστότοπους. Αυτό περιλαμβάνει συνδέσμους, βίντεο, εικόνες και σχεδόν οποιοδήποτε στοιχείο του ιστότοπου. Οι σύνδεσμοι είναι ένα από τα πιο σημαντικά στοιχεία στην ανάλυση ιστού και μπορείτε να μάθετε πολλά για έναν ιστότοπο μόνο αναλύοντας τις σελίδες στις οποίες συνδέεται.
Το IMPORTXML σάς επιτρέπει να ξύνετε γρήγορα συνδέσμους στα Φύλλα Google και στη συνέχεια να τους αναλύετε περαιτέρω χρησιμοποιώντας τις διάφορες λειτουργίες που προσφέρουν τα Φύλλα Google.
Για να ξύσετε όλους τους συνδέσμους από μια ιστοσελίδα, μπορείτε να χρησιμοποιήσετε τον ακόλουθο τύπο:
=IMPORTXML(url, "//a/@href")
Αυτό το ερώτημα XPath επιλέγει όλα href ιδιότητες του ένα στοιχεία, εξάγοντας αποτελεσματικά όλους τους συνδέσμους στη σελίδα.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a/@href")
Ο παραπάνω τύπος διαγράφει όλους τους συνδέσμους σε ένα άρθρο της Wikipedia.
Είναι καλή ιδέα να εισαγάγετε τη διεύθυνση URL της ιστοσελίδας σε ξεχωριστό κελί και στη συνέχεια να ανατρέξετε σε αυτό το κελί. Αυτό θα αποτρέψει τη φόρμουλα σας από το να γίνει πολύ μακρύ και δυσκίνητο. Μπορείτε να κάνετε το ίδιο με το ερώτημα XPath.
2. Απόξεση όλων των κειμένων συνδέσμων
Για να εξαγάγετε το κείμενο των συνδέσμων μαζί με τις διευθύνσεις URL τους, μπορείτε να χρησιμοποιήσετε:
=IMPORTXML(url, "//a")
Αυτό το ερώτημα επιλέγει όλα τα στοιχεία και μπορείτε να εξαγάγετε το κείμενο του συνδέσμου και τις διευθύνσεις URL από τα αποτελέσματα.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a")
Ο παραπάνω τύπος λαμβάνει τα κείμενα συνδέσμων στο ίδιο άρθρο της Wikipedia.
Μερικές φορές, μπορεί να χρειαστεί να ξύσετε συγκεκριμένους συνδέσμους με βάση κριτήρια. Για παράδειγμα, μπορεί να σας ενδιαφέρει να εξάγετε συνδέσμους που περιέχουν μια συγκεκριμένη λέξη-κλειδί ή συνδέσμους που βρίσκονται σε μια συγκεκριμένη ενότητα της σελίδας.
Με σωστή γνώση του XPath, μπορείτε να εντοπίσετε οποιοδήποτε στοιχείο αναζητάτε.
Για να ξύσετε συνδέσμους που περιέχουν μια συγκεκριμένη λέξη-κλειδί, μπορείτε να χρησιμοποιήσετε τη συνάρτηση contain() XPath:
=IMPORTXML(url, "//a[contains(@href, 'keyword')]/@href")
Αυτό το ερώτημα επιλέγει τα χαρακτηριστικά href των στοιχείων όπου το href περιέχει την καθορισμένη λέξη-κλειδί.
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//a[contains(@href, 'record')]/@href")
Ο παραπάνω τύπος διαγράφει όλους τους συνδέσμους που περιέχουν την εγγραφή λέξης στο κείμενό τους σε ένα δείγμα άρθρου της Wikipedia.
Για να ξύσετε συνδέσμους από μια συγκεκριμένη ενότητα μιας σελίδας, μπορείτε να καθορίσετε το XPath της ενότητας. Για παράδειγμα:
=IMPORTXML(url, "//div[@class='section']//a/@href")
Αυτό το ερώτημα επιλέγει χαρακτηριστικά href των στοιχείων μέσα στα στοιχεία div με την κλάση "section".
Ομοίως, ο παρακάτω τύπος επιλέγει όλους τους συνδέσμους εντός της κλάσης div που έχουν την κλάση mw-content-container:
=IMPORTXML("https://en.wikipedia.org/wiki/Nine_Inch_Nails", "//div[@class='mw-content-container']//a/@href")
Αξίζει να σημειωθεί ότι μπορείτε να χρησιμοποιήσετε το IMPORTXML για περισσότερα από το web scraping. Μπορείτε να χρησιμοποιήσετε την οικογένεια λειτουργιών IMPORT για να εισαγωγή πινάκων δεδομένων από ιστότοπους στα Φύλλα Google.
Παρόλο που τα Φύλλα Google και το Excel μοιράζονται τις περισσότερες από τις λειτουργίες τους, η οικογένεια λειτουργιών IMPORT είναι μοναδική στα Φύλλα Google. Θα χρειαστεί να εξετάσετε άλλες μεθόδους εισαγωγή δεδομένων από ιστότοπους στο Excel.
Απλοποιήστε την απόξεση Ιστού με τα Φύλλα Google
Η απόξεση ιστού με τα Φύλλα Google και τη λειτουργία IMPORTXML είναι ένας ευέλικτος και προσβάσιμος τρόπος συλλογής δεδομένων από ιστότοπους.
Κατακτώντας το XPath και κατανοώντας πώς να δημιουργείτε αποτελεσματικά ερωτήματα, μπορείτε να ξεκλειδώσετε πλήρως τις δυνατότητες του IMPORTXML και να αποκτήσετε πολύτιμες πληροφορίες από πόρους ιστού. Λοιπόν, ξεκινήστε το ξύσιμο και πηγαίνετε την ανάλυση ιστού σας στο επόμενο επίπεδο!