Selenium Εκμάθηση VBA Excel (Chrome Web Scra)ping)
⚡ Έξυπνη Σύνοψη
Selenium Η VBA στο Excel αυτοματοποιεί Google Chrome για την εξαγωγή δεδομένων από ιστοσελίδες HTML, χρησιμοποιώντας το Selenium Χρησιμοποιήστε τις μεθόδους βιβλιοθήκης τύπων και WebDriver για να ανοίξετε έναν ιστότοπο, να εντοπίσετε στοιχεία πίνακα ανά κλάση και ετικέτα και να γράψετε τα αποτελέσματα σε κελιά φύλλου εργασίας.

Τι είναι το Data Scraping Χρησιμοποιώντας Selenium?
Selenium είναι ένα εργαλείο αυτοματισμού που διευκολύνει το scraping πληροφορίες από ιστοσελίδες HTML, εκτελώντας web scraping μαζί σου, Google ChromeΣτο Excel, το Selenium Η βιβλιοθήκη τύπων επιτρέπει στην VBA να οδηγεί ένα πραγματικό πρόγραμμα περιήγησης αντί για τον παρωχημένο μηχανισμό του Internet Explorer.
Πώς να προετοιμάσετε τη μακροεντολή του Excel πριν από το Data Scraping Χρησιμοποιώντας Selenium
Υπάρχουν ορισμένες προϋποθέσεις που πρέπει να εκτελεστούν στο αρχείο μακροεντολών του Excel πριν από την έναρξη της σάρωσης δεδομένων.ping διαδικασία.
Αυτές οι προϋποθέσεις είναι οι εξής:
Βήμα 1) Ανοίξτε μια μακροεντολή που βασίζεται στο Excel και αποκτήστε πρόσβαση στην επιλογή Προγραμματιστής του Excel.
Βήμα 2) Επιλέξτε την επιλογή Visual Basic στην κορδέλα Προγραμματιστής.
Βήμα 3) Εισαγάγετε μια νέα μονάδα.
Βήμα 4) Αρχικοποιήστε μια νέα υπορουτίνα και ονομάστε την test2.
Sub test2() End Sub
Το αποτέλεσμα στην ενότητα θα είναι το εξής:
Βήμα 5) Αποκτήστε πρόσβαση στην επιλογή Αναφορά στην καρτέλα Εργαλεία και ανατρέξτε στο Selenium Βιβλιοθήκη τύπων. Αυτή η βιβλιοθήκη βοηθά στο άνοιγμα Google Chrome και διευκολύνει τη δημιουργία μακροεντολών.
Τώρα, το αρχείο Excel είναι έτοιμο για αλληλεπίδραση με το πρόγραμμα περιήγησης. Το επόμενο βήμα είναι η ενσωμάτωση ενός σεναρίου μακροεντολών που διευκολύνει την επεξεργασία δεδομένων.ping σε HTML.
Πώς να ανοίξετε Google Chrome Χρησιμοποιώντας VBA
Εδώ είναι τα βήματα για να ανοίξετε Google Chrome χρησιμοποιώντας VBA.
Βήμα 1) Δηλώστε και αρχικοποιήστε τις μεταβλητές στην υπορουτίνα όπως φαίνεται παρακάτω.
Sub test2() Dim driver As New WebDriver Dim rowc, cc, columnC As Integer
Βήμα 2) Για να ανοίξω Google Chrome Selenium και VBA, γράψτε το πρόγραμμα οδήγησης. Ξεκινήστε το "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. Αυτό διευκολύνεται από τη συνάρτηση Get, όπου η 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 είναι έτοιμη να εκτελέσει το scraping εργασίες. Το επόμενο βήμα δείχνει πώς οι πληροφορίες μπορούν να μεταφερθούνtracted με την εφαρμογή Selenium και VBA.
Πώς να αποκόψετε πληροφορίες από έναν ιστότοπο χρησιμοποιώντας VBA
Ας υποθέσουμε ότι ο ημερήσιος επενδυτής θέλει να έχει πρόσβαση στα δεδομένα από τον ιστότοπο καθημερινά. Κάθε φορά που κάνει κλικ στο κουμπί, θα πρέπει να εισάγει αυτόματα τα δεδομένα της αγοράς στο Excel.
Από τον παραπάνω ιστότοπο, είναι απαραίτητο να ελέγξετε ένα στοιχείο και να παρατηρήσετε πώς είναι δομημένα τα δεδομένα. Αποκτήστε πρόσβαση στον πηγαίο κώδικα του παρακάτω HTML πατώντας Control + 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, πρέπει να σχεδιάσετε μια μακροεντολή που αντλεί τις πληροφορίες κεφαλίδας και τα αντίστοιχα δεδομένα που σχετίζονται με τον πίνακα. Εκτελέστε τις παρακάτω εργασίες.
Βήμα 1) Διαμορφώστε έναν βρόχο For που εκτελείται μέσω των πληροφοριών της κεφαλίδας HTML ως συλλογή. Selenium Το πρόγραμμα οδήγησης εντοπίζει τις πληροφορίες κεφαλίδας χρησιμοποιώντας τις μεθόδους FindElementByClass() και FindElementByTag(), όπως φαίνεται.
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) Στη συνέχεια, η Selenium Το πρόγραμμα οδήγησης εντοπίζει τα δεδομένα του πίνακα χρησιμοποιώντας μια παρόμοια προσέγγιση. Γράψτε τον ακόλουθο κώδικα:
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
Το Excel μπορεί να αρχικοποιηθεί χρησιμοποιώντας το χαρακτηριστικό Range ή το χαρακτηριστικό Cells του φύλλου. Για να μειωθεί η πολυπλοκότητα του σεναρίου VBA, τα δεδομένα συλλογής αρχικοποιούνται στο χαρακτηριστικό Cells του Φύλλου 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.












