Selenium Οδηγός VBA Excel: Παράδειγμα απόξεσης ιστού Chrome
Τι είναι η απόξεση δεδομένων με χρήση σεληνίου;
Selenium μπορεί να ταξινομηθεί ως το εργαλείο αυτοματισμού που διευκολύνει την απόξεση πληροφοριών από τις ιστοσελίδες HTML για την εκτέλεση απόξεσης ιστού χρησιμοποιώντας το google chrome.
Πώς να προετοιμάσετε τη μακροεντολή Excel πριν από την εκτέλεση της απόξεσης δεδομένων χρησιμοποιώντας Selenium?
Υπάρχουν ορισμένες προϋποθέσεις που πρέπει να εκτελεστούν στο αρχείο μακροεντολής excel πριν μπείτε στη διαδικασία απόσυρσης δεδομένων στο excel.
Τα προαπαιτούμενα αυτά είναι τα εξής: –
Βήμα 1) Ανοίξτε μια μακροεντολή που βασίζεται σε Excel και αποκτήστε πρόσβαση στην επιλογή προγραμματιστή του excel.
Βήμα 2) Επιλέξτε την επιλογή Visual Basic στην κορδέλα προγραμματιστή.
Βήμα 3) Εισαγάγετε μια νέα μονάδα.
Βήμα 4) Αρχικοποιήστε μια νέα υπορουτίνα και ονομάστε την test2.
Sub test2() End sub
Τα αποτελέσματα στην ενότητα θα είναι τα ακόλουθα: –
Βήμα 5) Πρόσβαση στην επιλογή αναφοράς κάτω από την καρτέλα εργαλείου και αναφορά Selenium βιβλιοθήκη τύπου. Οι παρακάτω βιβλιοθήκες πρέπει να αναφέρονται στη μονάδα, καθώς βοηθά στο άνοιγμα του google chrome και διευκολύνει την ανάπτυξη δέσμης ενεργειών μακροεντολών.
Τώρα το αρχείο Excel είναι έτοιμο για αλληλεπίδραση με τον Internet Explorer. Τα επόμενα βήματα θα ήταν η ενσωμάτωση ενός σεναρίου μακροεντολής που θα διευκόλυνε την απόξεση δεδομένων σε HTML.
Πώς να ανοίξετε Google Chrome χρησιμοποιώντας VBA;
Εδώ, είναι ένα βήμα για το άνοιγμα Google Chrome χρησιμοποιώντας VBA
Βήμα 1) Δηλώστε και αρχικοποιήστε τις μεταβλητές στην υπορουτίνα όπως φαίνεται παρακάτω
Sub test2() Dim driver as new webdriver Dim rowc, cc, columnC as integer
Βήμα 2) Για να ανοίξετε το google chrome χρησιμοποιώντας σελήνιο και VBA, γράψτε driver.start "chrome" και πατήστε F5.
Ο παρακάτω θα ήταν ο κωδικός.
Sub test2() Dim driver as new webdriver Dim rowc, cc, columnC as integer Driver.start "Chrome" Application.Wait Now+Timevalue("00:00:20") End sub
Η ενότητα θα έχει ως αποτέλεσμα: –
Πώς να ανοίξετε ιστότοπο στο Google chrome χρησιμοποιώντας VBA;
Μόλις μπορέσετε να αποκτήσετε πρόσβαση στο google chrome χρησιμοποιώντας VBA, το επόμενο βήμα θα ήταν να ενσωματώσετε την πρόσβαση σε έναν ιστότοπο με χρήση VBA. Αυτό διευκολύνεται από τη συνάρτηση λήψης όπου η διεύθυνση URL πρέπει να περάσει ως διπλά εισαγωγικά στο χαρακτηριστικό.
Ακολουθήστε τα παρακάτω βήματα όπως εμφανίζεται
Η ενότητα θα έχει ως εξής: -
Πατήστε F5 για να εκτελέσετε τη μακροεντολή.
Η παρακάτω ιστοσελίδα θα ανοίξει στο google chrome όπως εμφανίζεται
Sub test2() Dim driver as new webdriver Dim rowc, cc, columnC as integer Driver.start "Chrome" Driver.get "https://demo.guru99.com/test/web-table-element.php" Application.Wait Now+Timevalue("00:00:20") End sub
Τώρα η μακροεντολή excel είναι έτοιμη όσον αφορά την εκτέλεση των εργασιών απόξεσης. Το επόμενο βήμα θα εμφανίσει πώς μπορούν να εξαχθούν οι πληροφορίες εφαρμόζοντας σελήνιο και VBA.
Πώς να αφαιρέσετε πληροφορίες από τον ιστότοπο χρησιμοποιώντας VBA;
Ας υποθέσουμε ότι ο ημερήσιος έμπορος θέλει να έχει πρόσβαση στα δεδομένα από τον ιστότοπο σε καθημερινή βάση. Κάθε φορά που ο έμπορος της ημέρας πατάει το κλικ στο κουμπί, θα πρέπει να τραβάει αυτόματα τα δεδομένα της αγοράς στο excel.
Από τον παραπάνω ιστότοπο, θα ήταν απαραίτητο να επιθεωρήσετε ένα στοιχείο και να παρατηρήσετε πώς είναι δομημένα τα δεδομένα. Αποκτήστε πρόσβαση στον παρακάτω πηγαίο κώδικα 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>
Ο πηγαίος κώδικας θα είναι ο εξής: –
Όπως φαίνεται ότι τα δεδομένα είναι δομημένα ως ένας ενιαίος Πίνακας HTML. Επομένως, για να αντληθούν ολόκληρα δεδομένα από τον πίνακα HTML, θα απαιτούσε τη σχεδίαση μακροεντολής που θα αντλεί τις πληροφορίες κεφαλίδας του πίνακα HTML και τα αντίστοιχα δεδομένα που σχετίζονται με τον πίνακα. Εκτελέστε τις ακόλουθες εργασίες όπως εμφανίζεται: –
Βήμα 1) Διατυπώστε έναν βρόχο for που διατρέχει τις πληροφορίες κεφαλίδας HTML ως συλλογή. Το πρόγραμμα οδήγησης σεληνίου πρέπει να βρει τις πληροφορίες κεφαλίδας του πίνακα HTML. Για να το κάνουμε αυτό, χρησιμοποιούμε τις μεθόδους FindElementByClass() και FindElementByTag() για να εκτελέσουμε την εργασία όπως εμφανίζεται
Η μονάδα VBA θα έχει την εξής μορφή: –
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get "https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th
Βήμα 2) Στη συνέχεια, ο οδηγός σεληνίου θα εντόπισε τα δεδομένα του πίνακα χρησιμοποιώντας την παρόμοια προσέγγιση, όπως αναφέρθηκε παραπάνω. Πρέπει να γράψετε τον ακόλουθο κώδικα: –
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get"https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub
Η μονάδα vba θα έχει την εξής μορφή: –
Το excel μπορεί να αρχικοποιηθεί μέσω του χαρακτηριστικού Range του φύλλου excel ή μέσω του χαρακτηριστικού κελιών του φύλλου excel. Για να μειωθεί η πολυπλοκότητα της δέσμης ενεργειών VBA, τα δεδομένα συλλογής αρχικοποιούνται στο χαρακτηριστικό κελιών excel του φύλλου 2 που υπάρχει στο βιβλίο εργασίας. Επιπλέον, το χαρακτηριστικό text βοηθά στην τοποθέτηση των πληροφοριών κειμένου κάτω από την ετικέτα HTML.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer rowc = 2 Application.ScreenUpdating = False driver.Start "chrome" driver.Get"https://demo.guru99.com/test/web-table-element.php" For Each th In driver.FindElementByClass("dataTable").FindElementByTag("thead").FindElementsByTag("tr") cc = 1 For Each t In th.FindElementsByTag("th") Sheet2.Cells(1, cc).Value = t.Text cc = cc + 1 Next t Next th For Each tr In driver.FindElementByClass("dataTable").FindElementByTag("tbody").FindElementsByTag("tr") columnC = 1 For Each td In tr.FindElementsByTag("td") Sheet2.Cells(rowc, columnC).Value = td.Text columnC = columnC + 1 Next td rowc = rowc + 1 Next tr Application.Wait Now + TimeValue("00:00:20") End Sub
Η μονάδα vba θα έχει την εξής μορφή: –
Βήμα 3) Μόλις το σενάριο μακροεντολής είναι έτοιμο, περάστε και αντιστοιχίστε την υπορουτίνα στο κουμπί excel και βγείτε από τη μονάδα του VBA. Επισημάνετε το κουμπί ως ανανέωση ή οποιοδήποτε κατάλληλο όνομα που θα μπορούσε να αρχικοποιηθεί σε αυτό. Για αυτό το παράδειγμα, το κουμπί αρχικοποιείται ως ανανέωση.
Βήμα 4) Πατήστε το κουμπί ανανέωσης για να λάβετε την παρακάτω αναφερόμενη έξοδο
Βήμα 5) Συγκρίνετε τα αποτελέσματα στο excel με τα αποτελέσματα του google chrome
Σύνοψη
- Selenium μπορεί να ταξινομηθεί ως το εργαλείο αυτοματισμού που διευκολύνει την απόξεση πληροφοριών από τις ιστοσελίδες HTML για την εκτέλεση απόξεσης ιστού χρησιμοποιώντας το google chrome.
- Η απόξεση στο διαδίκτυο πρέπει να γίνεται προσεκτικά.
- Συνήθως είναι αντίθετο με τους όρους του ιστότοπου η απόσυρση πληροφοριών.
- Όταν η απόξεση γίνεται μέσω σεληνίου, τότε προσφέρει υποστήριξη πολλαπλών προγραμμάτων περιήγησης.
- Με άλλα λόγια, η ξύστρα μπορεί να εκτελέσει παρόμοιες εργασίες απόξεσης Firefox, Internet Explorer επίσης.