Web Scraping με VBA

Τι είναι η απόξεση δεδομένων;

Η απόξεση δεδομένων είναι η τεχνική που βοηθά στην εξαγωγή των επιθυμητών πληροφοριών από μια ιστοσελίδα HTML σε ένα τοπικό αρχείο που υπάρχει στον τοπικό σας υπολογιστή. Κανονικά, ένα τοπικό αρχείο θα μπορούσε να αντιστοιχεί σε ένα αρχείο excel, ένα αρχείο word ή να πει οποιοδήποτε Microsoft αίτηση γραφείου. Βοηθά στη διοχέτευση κρίσιμων πληροφοριών από την ιστοσελίδα.

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

Πώς να προετοιμάσετε τη μακροεντολή Excel πριν εκτελέσετε την απόξεση δεδομένων χρησιμοποιώντας τον Internet Explorer;

Υπάρχουν ορισμένες προϋποθέσεις που πρέπει να εκτελεστούν στο αρχείο μακροεντολής excel πριν μπείτε στη διαδικασία απόσυρσης δεδομένων στο excel.

Τα προαπαιτούμενα αυτά είναι τα εξής: –

Βήμα 1) Ανοίξτε μια μακροεντολή που βασίζεται σε Excel και αποκτήστε πρόσβαση στην επιλογή προγραμματιστή του excel.

Προετοιμάστε τη μακροεντολή Excel πριν από την εκτέλεση της απόξεσης δεδομένων χρησιμοποιώντας τον Internet Explorer

Βήμα 2) Επιλέξτε την επιλογή Visual Basic στην κορδέλα προγραμματιστή.

Προετοιμάστε τη μακροεντολή Excel πριν από την εκτέλεση της απόξεσης δεδομένων χρησιμοποιώντας τον Internet Explorer

Βήμα 3) Εισαγάγετε μια νέα μονάδα.

Προετοιμάστε τη μακροεντολή Excel πριν από την εκτέλεση της απόξεσης δεδομένων χρησιμοποιώντας τον Internet Explorer

Βήμα 4) Ξεκινήστε μια νέα υπορουτίνα

Sub test()
End sub

Η ενότητα θα έχει ως αποτέλεσμα: –

Προετοιμάστε τη μακροεντολή Excel πριν από την εκτέλεση της απόξεσης δεδομένων χρησιμοποιώντας τον Internet Explorer

Βήμα 5) Πρόσβαση στην επιλογή αναφοράς κάτω από την καρτέλα εργαλείου και αναφορά Microsoft Βιβλιοθήκη αντικειμένων HTML και Microsoft έλεγχος διαδικτύου.

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

Προετοιμάστε τη μακροεντολή Excel πριν από την εκτέλεση της απόξεσης δεδομένων χρησιμοποιώντας τον Internet Explorer

Τώρα το αρχείο Excel είναι έτοιμο για αλληλεπίδραση με τον Internet Explorer. Το επόμενο βήμα θα ήταν η ενσωμάτωση σεναρίων μακροεντολών που θα διευκόλυνε την απόξεση δεδομένων σε HTML.

Πώς να ανοίξετε τον Internet Explorer χρησιμοποιώντας το Excel VBA;

Βήμα 1) Αρχικοποιήστε τη μεταβλητή στις υπορουτίνες όπως φαίνεται παρακάτω

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument

Βήμα 2) Για να ανοίξετε τον Internet Explorer χρησιμοποιώντας VBA, γράψτε δηλαδή ορατός=αληθινός και πατήστε το πλήκτρο F5.

Sub test()
Dim ie As New InternetExplorer 
Dim doc As New HTMLDocument
Ie.visible=true

Η ενότητα θα έχει ως εξής: -

Ανοίξτε τον Internet Explorer χρησιμοποιώντας το Excel VBA

Ανοίξτε τον Internet Explorer χρησιμοποιώντας το Excel VBA

Πώς να ανοίξετε ιστότοπο στον Internet Explorer χρησιμοποιώντας VBA;

Ακολουθούν τα βήματα για να ανοίξετε τον ιστότοπο στο Internet Explorer χρησιμοποιώντας VBA

Βήμα 1) Μόλις μπορέσετε να αποκτήσετε πρόσβαση στον Internet Explorer χρησιμοποιώντας το Excel VBA, το επόμενο βήμα θα ενσωματώσει την πρόσβαση σε έναν ιστότοπο με χρήση VBA. Αυτό διευκολύνεται από το Navigate Attribute, όπου η διεύθυνση URL πρέπει να περάσει ως διπλά εισαγωγικά στο χαρακτηριστικό. Ακολουθήστε τα παρακάτω βήματα όπως εμφανίζεται.

Sub test()
Dim, ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate"http://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE

Βήμα 2) - Πατήστε F5 για να εκτελέσετε τη μακροεντολή. Η παρακάτω ιστοσελίδα θα ανοίξει όπως εμφανίζεται

Ανοίξτε την τοποθεσία Web στον Internet Explorer χρησιμοποιώντας VBA

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

Πώς να αφαιρέσετε πληροφορίες από τον ιστότοπο χρησιμοποιώντας VBA;

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

Από τον παραπάνω ιστότοπο, θα ήταν απαραίτητο να επιθεωρήσετε ένα στοιχείο και να παρατηρήσετε πώς είναι δομημένα τα δεδομένα.

Βήμα 1) Αποκτήστε πρόσβαση στον παρακάτω πηγαίο κώδικα HTML πατώντας το πλήκτρο + Shift + Ι

<table class="datatable">
<thead>
<tr>
<th>Company</th>
<th>Group</th>
<th>Pre Close (Rs)</th>
<th>Current Price (Rs)</th>
<th>% Change</th>
</tr>

Ο πηγαίος κώδικας θα είναι ο εξής: –

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document

Όπως φαίνεται ότι τα δεδομένα είναι δομημένα ως ένας ενιαίος Πίνακας HTML. Επομένως, για να τραβήξετε ολόκληρα δεδομένα από τον πίνακα html, θα απαιτούσε σχεδιασμό μακροεντολής που συλλέγει τα δεδομένα με τη μορφή συλλογής.

Στη συνέχεια, η συλλογή θα επικολληθεί στο excel. Για να επιτύχετε τα επιθυμητά αποτελέσματα, ακολουθήστε τα παρακάτω βήματα: –

Βήμα 2) Αρχικοποιήστε το έγγραφο Html στην υπορουτίνα

Η μονάδα VBA θα έχει την εξής μορφή: –

Βήμα 3) Αρχικοποιήστε το στοιχείο συλλογής που υπάρχει στο έγγραφο HTML

Η μονάδα VBA θα έχει την εξής μορφή: –

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object
ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document
Set ecoll = doc.getElementsByTagName("table")

Βήμα 4) Αρχικοποιήστε τα κελιά του φύλλου excel με τη βοήθεια του ένθετου βρόχου όπως φαίνεται

Η μονάδα VBA θα έχει την εξής μορφή: –

Sub test()
Dim ie As New InternetExplorer
Dim doc As New HTMLDocument
Dim ecoll As Object

ie.Visible = True
ie.navigate "http://demo.guru99.com/test/web-table-element.php"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document
Set ecoll = doc.getElementsByTagName("table")

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

Μόλις το σενάριο μακροεντολής είναι έτοιμο, περάστε και αντιστοιχίστε την υπορουτίνα στο κουμπί excel και βγείτε από τη μονάδα του VBA. Επισημάνετε το κουμπί ως ανανέωση ή οποιοδήποτε κατάλληλο όνομα που θα μπορούσε να αρχικοποιηθεί σε αυτό. Για αυτό το παράδειγμα, το κουμπί αρχικοποιείται ως ανανέωση.

Ξύστε πληροφορίες από τον ιστότοπο χρησιμοποιώντας VBA

Βήμα 5) Πατήστε το κουμπί ανανέωσης για να λάβετε την παρακάτω αναφερόμενη έξοδο

Ξύστε πληροφορίες από τον ιστότοπο χρησιμοποιώντας VBA

Βήμα 6) Συγκρίνετε τα αποτελέσματα στο excel με τα αποτελέσματα του internet explorer

Ξύστε πληροφορίες από τον ιστότοπο χρησιμοποιώντας VBA

Σύνοψη

  • Η απόξεση δεδομένων επιτρέπει στο χρήστη να αφαιρέσει μόνο τις πληροφορίες που θέλει ο χρήστης. Για να βρείτε τα καλύτερα εργαλεία για αυτόν τον σκοπό, ρίξτε μια ματιά σε αυτήν τη λίστα εργαλείων απόξεσης ιστού που μπορούν να σας βοηθήσουν να εξαγάγετε αποτελεσματικά τις επιθυμητές πληροφορίες από διάφορους ιστότοπους.
  • Η απόξεση μπορεί να πραγματοποιηθεί χρησιμοποιώντας τον Internet Explorer.
  • Η διαδικασία απόξεσης είναι πιο αργή στην περίπτωση του Internet Explorer. Ωστόσο, προσφέρει τα επιθυμητά αποτελέσματα στον χρήστη.
  • Η απόξεση πρέπει να γίνεται με απόλυτη προσοχή και προσοχή καθώς μπορεί να βλάψει και να καταστρέψει το σύστημα που χρησιμοποιείται για το ξύσιμο.