Εισαγωγή στο σελήνιο στην Python 3

Introduction Selenium Python 3



Το σελήνιο είναι ένα πλαίσιο που χρησιμοποιείται για τη δοκιμή εφαρμογών Ιστού. Το Selenium αυτοματοποιεί ένα πρόγραμμα περιήγησης, όπως το Chrome ή το Firefox, για την εκτέλεση δοκιμών στον ιστότοπο που θέλετε. Το σελήνιο είναι επίσης ένα πολύ ισχυρό εργαλείο απόξεσης ιστού. Το Selenium υποστηρίζει JavaScript και όλες τις σύγχρονες δυνατότητες του προγράμματος περιήγησης. Αυτό το εργαλείο είναι πολύ αποτελεσματικό στην εξαγωγή πληροφοριών από ιστότοπους.

Αυτό το άρθρο θα σας δείξει πώς να ρυθμίσετε το Selenium στη διανομή Linux σας (δηλαδή, το Ubuntu), καθώς και πώς να εκτελέσετε βασικούς αυτοματισμούς ιστού και απόσυρση ιστού με τη βιβλιοθήκη Selenium Python 3.







Προαπαιτούμενα

Για να δοκιμάσετε τις εντολές και τα παραδείγματα που χρησιμοποιούνται σε αυτό το άρθρο, πρέπει να έχετε τα ακόλουθα:



1) Μια διανομή Linux (κατά προτίμηση Ubuntu) εγκατεστημένη στον υπολογιστή σας.
2) Το Python 3 είναι εγκατεστημένο στον υπολογιστή σας.
3) Το PIP 3 είναι εγκατεστημένο στον υπολογιστή σας.
4) Το πρόγραμμα περιήγησης ιστού Google Chrome ή Firefox που είναι εγκατεστημένο στον υπολογιστή σας.



Μπορείτε να βρείτε πολλά άρθρα για αυτά τα θέματα στη διεύθυνση LinuxHint.com Το Βεβαιωθείτε ότι έχετε ελέγξει αυτά τα άρθρα εάν χρειάζεστε περαιτέρω βοήθεια.





Προετοιμασία εικονικού περιβάλλοντος Python 3 για το έργο

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

Το Python virtualenv το module χρησιμοποιείται για τη διαχείριση εικονικών περιβαλλόντων Python.



Μπορείτε να εγκαταστήσετε το Python virtualenv ενότητα σε παγκόσμιο επίπεδο χρησιμοποιώντας το PIP 3, ως εξής:

$ sudo pip3 εγκαταστήστε virtualenv

Το PIP3 θα κατεβάσει και θα εγκαταστήσει παγκοσμίως όλες τις απαιτούμενες ενότητες.

Σε αυτό το σημείο, η Python virtualenv Η μονάδα πρέπει να εγκατασταθεί σε παγκόσμιο επίπεδο.

Δημιουργήστε τον κατάλογο έργου python-selenium-basic/ στον τρέχοντα κατάλογο εργασίας σας, ως εξής:

$ mkdir -pv python-selenium-Basic/προγράμματα οδήγησης

Μεταβείτε στον πρόσφατα δημιουργημένο κατάλογο έργου python-selenium-basic/ , ως εξής:

$CDpython-selenium-basic/

Δημιουργήστε ένα εικονικό περιβάλλον Python στον κατάλογο του έργου σας με την ακόλουθη εντολή:

$ virtualenv.env

Το εικονικό περιβάλλον Python θα πρέπει τώρα να δημιουργηθεί στον κατάλογο του έργου σας ».

Ενεργοποιήστε το εικονικό περιβάλλον Python στον κατάλογο του έργου σας μέσω της ακόλουθης εντολής:

$ πηγή.env/bin/activ

Όπως μπορείτε να δείτε, το εικονικό περιβάλλον Python είναι ενεργοποιημένο για αυτόν τον κατάλογο έργου.

Εγκατάσταση Selenium Python Library

Η βιβλιοθήκη Selenium Python είναι διαθέσιμη στο επίσημο αποθετήριο Python PyPI.

Μπορείτε να εγκαταστήσετε αυτήν τη βιβλιοθήκη χρησιμοποιώντας το PIP 3, ως εξής:

$ pip3 εγκατάσταση σεληνίου

Η βιβλιοθήκη Selenium Python θα πρέπει τώρα να εγκατασταθεί.

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

Εγκατάσταση του προγράμματος οδήγησης Firefox Gecko

Το Firefox Gecko Driver σάς επιτρέπει να ελέγχετε ή να αυτοματοποιείτε το πρόγραμμα περιήγησης ιστού Firefox χρησιμοποιώντας το Selenium.

Για να κάνετε λήψη του προγράμματος οδήγησης Firefox Gecko, επισκεφτείτε τη διεύθυνση Το GitHub κυκλοφορεί τη σελίδα του mozilla/geckodriver από ένα πρόγραμμα περιήγησης ιστού.

Όπως μπορείτε να δείτε, το v0.26.0 είναι η πιο πρόσφατη έκδοση του προγράμματος οδήγησης Firefox Gecko τη στιγμή που γράφτηκε αυτό το άρθρο.

Για να κάνετε λήψη του προγράμματος οδήγησης Firefox Gecko, μετακινηθείτε λίγο προς τα κάτω και κάντε κλικ στο αρχείο tar.gz του Linux geckodriver, ανάλογα με την αρχιτεκτονική του λειτουργικού σας συστήματος.

Εάν χρησιμοποιείτε λειτουργικό σύστημα 32-bit, κάντε κλικ στο geckodriver-v0.26.0-linux32.tar.gz Σύνδεσμος.

Εάν χρησιμοποιείτε λειτουργικό σύστημα 64-bit, κάντε κλικ στο geckodriver-v0.26.0-linuxx64.tar.gz Σύνδεσμος.

Στην περίπτωσή μου, θα κατεβάσω την έκδοση 64-bit του προγράμματος οδήγησης Firefox Gecko.

Το πρόγραμμα περιήγησής σας θα πρέπει να σας ζητήσει να αποθηκεύσετε το αρχείο. Επιλέγω Αποθηκεύσετε το αρχείο και στη συνέχεια κάντε κλικ Εντάξει Το

Το αρχείο Firefox Gecko Driver πρέπει να μεταφορτωθεί στο αρχείο ~/Λήψεις Ευρετήριο.

Εξαγάγετε το geckodriver-v0.26.0-linux64.tar.gz αρχείο από το ~/Λήψεις κατάλογος στο οδηγοί/ κατάλογο του έργου σας εισάγοντας την ακόλουθη εντολή:

$πίσσα -xzf~/Λήψεις/geckodriver-v0.26.0-linux64.tar.gz-ΝΤΟοδηγοί/

Μόλις εξαχθεί το αρχείο Firefox Gecko Driver, ένα νέο πρόγραμμα οδήγησης gecko το δυαδικό αρχείο πρέπει να δημιουργηθεί στο οδηγοί/ κατάλογο του έργου σας, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης.

Δοκιμή Selenium Firefox Gecko Driver

Σε αυτήν την ενότητα, θα σας δείξω πώς να ρυθμίσετε το πρώτο σας σενάριο Python Selenium για να ελέγξετε αν λειτουργεί το πρόγραμμα οδήγησης Firefox Gecko.

Αρχικά, ανοίξτε τον κατάλογο έργου python-selenium-basic/ με το αγαπημένο σας IDE ή πρόγραμμα επεξεργασίας. Σε αυτό το άρθρο, θα χρησιμοποιήσω το Visual Studio Code.

Δημιουργήστε το νέο σενάριο Python ex01.py , και πληκτρολογήστε τις ακόλουθες γραμμές στο σενάριο.

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά
από χρόνος εισαγωγήύπνος
πρόγραμμα περιήγησης=webdriver.Firefox(εκτελέσιμη_διαδρομή='./drivers/geckodriver')
πρόγραμμα περιήγησης.παίρνω('http://www.google.com')
ύπνος(5)
πρόγραμμα περιήγησης.εγκαταλείπω()

Μόλις τελειώσετε, αποθηκεύστε το ex01.py Python script.

Θα εξηγήσω τον κώδικα σε μεταγενέστερη ενότητα αυτού του άρθρου.

Η ακόλουθη γραμμή διαμορφώνει το Selenium ώστε να χρησιμοποιεί το πρόγραμμα οδήγησης Firefox Gecko από το οδηγοί/ κατάλογο του έργου σας.

Για να ελέγξετε εάν το πρόγραμμα οδήγησης Firefox Gecko λειτουργεί με το Selenium, εκτελέστε τα παρακάτω ex01.py Python script:

$ python3 ex01.py

Το πρόγραμμα περιήγησης ιστού Firefox πρέπει να επισκέπτεται αυτόματα το Google.com και να κλείνει μετά από 5 δευτερόλεπτα. Εάν συμβεί αυτό, τότε το πρόγραμμα οδήγησης Selenium Firefox Gecko λειτουργεί σωστά.

Εγκατάσταση του προγράμματος οδήγησης ιστού Chrome

Το Chrome Web Driver σάς επιτρέπει να ελέγχετε ή να αυτοματοποιείτε το πρόγραμμα περιήγησης ιστού Google Chrome χρησιμοποιώντας το Selenium.

Πρέπει να κάνετε λήψη της ίδιας έκδοσης του προγράμματος περιήγησης Chrome Chrome με αυτήν του προγράμματος περιήγησης ιστού Google Chrome.

Για να βρείτε τον αριθμό έκδοσης του προγράμματος περιήγησης ιστού Google Chrome, επισκεφτείτε τη διεύθυνση chrome: // ρυθμίσεις/βοήθεια στο Google Chrome. Ο αριθμός έκδοσης πρέπει να βρίσκεται στο Σχετικά με το Chrome ενότητα, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης.

Στην περίπτωσή μου, ο αριθμός έκδοσης είναι 83.0.4103.116 Το Τα τρία πρώτα μέρη του αριθμού έκδοσης ( 83.0.4103 , στην περίπτωσή μου) πρέπει να ταιριάζει με τα τρία πρώτα μέρη του αριθμού έκδοσης του Chrome Web Driver.

Για λήψη του Chrome Web Driver, επισκεφτείτε τη διεύθυνση επίσημη σελίδα λήψης προγράμματος οδήγησης Chrome Το

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

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

Μόλις κάνετε κλικ στη σωστή έκδοση του Chrome Web Driver, θα σας μεταφέρει στην ακόλουθη σελίδα. Κάνε κλικ στο chromedriver_linux64.zip σύνδεσμο, όπως σημειώνεται στο παρακάτω στιγμιότυπο οθόνης.

Πρέπει να γίνει λήψη του αρχείου προγράμματος οδήγησης Chrome Web.

Το αρχείο Chrome Web Driver πρέπει τώρα να μεταφορτωθεί στο ~/Λήψεις Ευρετήριο.

Μπορείτε να εξαγάγετε το chromedriver-linux64.zip αρχείο από το ~/Λήψεις κατάλογος στο οδηγοί/ κατάλογο του έργου σας με την ακόλουθη εντολή:

$ αποσυμπίεση~/Downloads/chromedriver_linux64.φερμουάρ-d προγράμματα οδήγησης/

Μόλις εξαχθεί το αρχείο προγράμματος οδήγησης Chrome, ένα νέο chromedriver το δυαδικό αρχείο πρέπει να δημιουργηθεί στο οδηγοί/ κατάλογο του έργου σας, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης.

Δοκιμή Selenium Chrome Web Driver

Σε αυτήν την ενότητα, θα σας δείξω πώς να ρυθμίσετε το πρώτο σας σενάριο Python Selenium για να ελέγξετε αν λειτουργεί το πρόγραμμα οδήγησης ιστού Chrome.

Αρχικά, δημιουργήστε το νέο σενάριο Python ex02.py , και πληκτρολογήστε τις ακόλουθες γραμμές κωδικών στο σενάριο.

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά
από χρόνος εισαγωγήύπνος
πρόγραμμα περιήγησης=webdriver.Χρώμιο(εκτελέσιμη_διαδρομή='./drivers/chromedriver')
πρόγραμμα περιήγησης.παίρνω('http://www.google.com')
ύπνος(5)
πρόγραμμα περιήγησης.εγκαταλείπω()

Μόλις τελειώσετε, αποθηκεύστε το ex02.py Python script.

Θα εξηγήσω τον κώδικα σε μεταγενέστερη ενότητα αυτού του άρθρου.

Η ακόλουθη γραμμή διαμορφώνει το Selenium ώστε να χρησιμοποιεί το πρόγραμμα οδήγησης Chrome Chrome από το οδηγοί/ κατάλογο του έργου σας.

Για να ελέγξετε εάν το πρόγραμμα οδήγησης ιστού Chrome λειτουργεί με το Selenium, εκτελέστε το ex02.py Σενάριο Python, ως εξής:

$ python3 ex01.py

Το πρόγραμμα περιήγησης ιστού Google Chrome θα πρέπει να επισκέπτεται αυτόματα το Google.com και να κλείνει μετά από 5 δευτερόλεπτα. Εάν συμβεί αυτό, τότε το πρόγραμμα οδήγησης Selenium Firefox Gecko λειτουργεί σωστά.

Βασικά στοιχεία της διαδικτυακής απόξεσης με σελήνιο

Θα χρησιμοποιώ το πρόγραμμα περιήγησης ιστού Firefox στο εξής. Μπορείτε επίσης να χρησιμοποιήσετε το Chrome, αν θέλετε.

Ένα βασικό σενάριο σελήνιο Python θα πρέπει να μοιάζει με το σενάριο που εμφανίζεται στο παρακάτω στιγμιότυπο οθόνης.

Αρχικά, εισαγάγετε το σελήνιο webdriver από το σελήνιο μονάδα μέτρησης.

Στη συνέχεια, εισαγάγετε το Κλειδιά από selenium.webdriver.common.keys Το Αυτό θα σας βοηθήσει να στείλετε πατήματα πλήκτρων πληκτρολογίου στο πρόγραμμα περιήγησης που αυτοματοποιείτε από το Selenium.

Η ακόλουθη γραμμή δημιουργεί α πρόγραμμα περιήγησης αντικείμενο για το πρόγραμμα περιήγησης ιστού Firefox χρησιμοποιώντας το πρόγραμμα οδήγησης Firefox Gecko (Webdriver). Μπορείτε να ελέγξετε τις ενέργειες του προγράμματος περιήγησης Firefox χρησιμοποιώντας αυτό το αντικείμενο.

Για φόρτωση ενός ιστότοπου ή διεύθυνσης URL (θα φορτώσω τον ιστότοπο https://www.duckduckgo.com ), καλέστε το παίρνω() μέθοδος του πρόγραμμα περιήγησης αντικείμενο στο πρόγραμμα περιήγησής σας Firefox.

Χρησιμοποιώντας το Selenium, μπορείτε να γράψετε τις δοκιμές σας, να εκτελέσετε αναζήτηση ιστού και, τέλος, να κλείσετε το πρόγραμμα περιήγησης χρησιμοποιώντας το εγκαταλείπω() μέθοδος του πρόγραμμα περιήγησης αντικείμενο.

Πάνω είναι η βασική διάταξη ενός σεναρίου Python script. Θα γράψετε αυτές τις γραμμές σε όλα τα σενάρια σεληνίου Python.

Παράδειγμα 1: Εκτύπωση του τίτλου μιας ιστοσελίδας

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

Δημιουργήστε το νέο αρχείο ex04.py και πληκτρολογήστε τις ακόλουθες γραμμές κωδικών σε αυτό.

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά

πρόγραμμα περιήγησης=webdriver.Firefox(εκτελέσιμη_διαδρομή='./drivers/geckodriver')

πρόγραμμα περιήγησης.παίρνω('https://www.duckduckgo.com')
Τυπώνω('Τίτλος: %s'% πρόγραμμα περιήγησης.τίτλος)
πρόγραμμα περιήγησης.εγκαταλείπω()

Μόλις τελειώσετε, αποθηκεύστε το αρχείο.

Εδώ, το browser.title χρησιμοποιείται για να αποκτήσετε πρόσβαση στον τίτλο της ιστοσελίδας που επισκέπτεστε και το Τυπώνω() η λειτουργία θα χρησιμοποιηθεί για την εκτύπωση του τίτλου στην κονσόλα.

Μετά την εκτέλεση του ex04.py σενάριο, θα πρέπει:

1) Ανοίξτε τον Firefox
2) Φορτώστε την ιστοσελίδα που θέλετε
3) Αποκτήστε τον τίτλο της σελίδας
4) Εκτυπώστε τον τίτλο στην κονσόλα
5) Και τέλος, κλείστε το πρόγραμμα περιήγησης

Όπως μπορείτε να δείτε, το ex04.py το σενάριο έχει εκτυπώσει όμορφα τον τίτλο της ιστοσελίδας στην κονσόλα.

$ python3 ex04.py

Παράδειγμα 2: Εκτύπωση των τίτλων πολλαπλών ιστοσελίδων

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

Για να καταλάβετε πώς λειτουργεί αυτό, δημιουργήστε το νέο σενάριο Python ex05.py και πληκτρολογήστε τις ακόλουθες γραμμές κώδικα στο σενάριο:

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά

πρόγραμμα περιήγησης=webdriver.Firefox(εκτελέσιμη_διαδρομή='./drivers/geckodriver')


urls= ['https://www.duckduckgo.com', 'https://linuxhint.com', 'https://yahoo.com']
Γιαurlσεurls:
πρόγραμμα περιήγησης.παίρνω(url)
Τυπώνω('Τίτλος: %s'% πρόγραμμα περιήγησης.τίτλος)
πρόγραμμα περιήγησης.εγκαταλείπω()

Μόλις τελειώσετε, αποθηκεύστε το σενάριο Python ex05.py Το

Εδώ, το urls λίστα διατηρεί τη διεύθυνση URL κάθε ιστοσελίδας.

ΠΡΟΣ ΤΟ Για ο βρόχος χρησιμοποιείται για να επαναληφθεί μέσω του urls στοιχεία λίστας.

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

Εκτελέστε το σενάριο Python ex05.py , και θα πρέπει να δείτε τον τίτλο κάθε ιστοσελίδας στο urls λίστα.

$ python3 ex05.py

Αυτό είναι ένα παράδειγμα του τρόπου με τον οποίο το Selenium μπορεί να εκτελέσει την ίδια εργασία με πολλές ιστοσελίδες ή ιστότοπους.

Παράδειγμα 3: Εξαγωγή δεδομένων από μια ιστοσελίδα

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

Αρχικά, επισκεφθείτε το Random.org σύνδεσμος από τον Firefox. Η σελίδα θα πρέπει να δημιουργεί μια τυχαία συμβολοσειρά, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης.

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

Για να δείτε πώς αναπαρίστανται τα δεδομένα τυχαίας συμβολοσειράς σε HTML, επιλέξτε τα δεδομένα τυχαίας συμβολοσειράς και πατήστε το δεξί κουμπί του ποντικιού (RMB) και κάντε κλικ στο Επιθεώρηση στοιχείου (Q) , όπως σημειώνεται στο παρακάτω στιγμιότυπο οθόνης.

Η αναπαράσταση HTML των δεδομένων θα πρέπει να εμφανίζεται στο Επιθεωρητής καρτέλα, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης.

Μπορείτε επίσης να κάνετε κλικ στο Ελέγξτε το εικονίδιο ( ) για να ελέγξετε τα δεδομένα από τη σελίδα.

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

Όπως μπορείτε να δείτε, τα τυχαία δεδομένα συμβολοσειράς τυλίγονται σε ένα HTML Για ετικέτα και περιέχει την τάξη δεδομένα Το

Τώρα που γνωρίζουμε την αναπαράσταση HTML των δεδομένων που θέλουμε να εξαγάγουμε, θα δημιουργήσουμε ένα σενάριο Python για να εξάγουμε τα δεδομένα χρησιμοποιώντας το Selenium.

Δημιουργήστε το νέο σενάριο Python ex06.py και πληκτρολογήστε τις ακόλουθες γραμμές κωδικών στο σενάριο

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά

πρόγραμμα περιήγησης=webdriver.Firefox(εκτελέσιμη_διαδρομή='./drivers/geckodriver')

πρόγραμμα περιήγησης.παίρνω('https://www.random.org/strings/?num=1&len=20&digits
= on & upperalpha = on & loweralpha = on & unique = on & format = html & rnd = new '
)

dataElement=πρόγραμμα περιήγησης.find_element_by_css_selector('pre.data')
Τυπώνω(dataElement.κείμενο)
πρόγραμμα περιήγησης.εγκαταλείπω()

Μόλις τελειώσετε, αποθηκεύστε το ex06.py Python script.

Εδώ, το browser.get () η μέθοδος φορτώνει την ιστοσελίδα στο πρόγραμμα περιήγησης Firefox.

ο browser.find_element_by_css_selector () μέθοδος αναζητά τον κώδικα HTML της σελίδας για συγκεκριμένο στοιχείο και το επιστρέφει.

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

Κάτω από προ.δεδομένα στοιχείο έχει αποθηκευτεί στο dataElement μεταβλητός.

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

Εάν τρέχετε το ex06.py Σενάριο Python, θα πρέπει να εξάγει τα τυχαία δεδομένα συμβολοσειράς από την ιστοσελίδα, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης.

$ python3 ex06.py

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

Παράδειγμα 4: Εξαγωγή λίστας δεδομένων από ιστοσελίδα

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

Αρχικά, επισκεφθείτε το random-name-generator.info από το πρόγραμμα περιήγησης ιστού Firefox. Αυτός ο ιστότοπος θα δημιουργεί δέκα τυχαία ονόματα κάθε φορά που φορτώνετε ξανά τη σελίδα, όπως μπορείτε να δείτε στο παρακάτω στιγμιότυπο οθόνης. Ο στόχος μας είναι να εξαγάγουμε αυτά τα τυχαία ονόματα χρησιμοποιώντας Selenium.

Εάν ελέγξετε πιο προσεκτικά τη λίστα ονομάτων, μπορείτε να δείτε ότι είναι μια λίστα με σειρά ( καλούπι ετικέτα). ο καλούπι Η ετικέτα περιλαμβάνει επίσης το όνομα της τάξης λίστα ονομάτων Το Κάθε ένα από τα τυχαία ονόματα αναπαρίσταται ως στοιχείο λίστας ( στο ετικέτα) μέσα στο καλούπι ετικέτα.

Για να εξαγάγετε αυτά τα τυχαία ονόματα, δημιουργήστε το νέο σενάριο Python ex07.py και πληκτρολογήστε τις ακόλουθες γραμμές κωδικών στο σενάριο.

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά

πρόγραμμα περιήγησης=webdriver.Firefox(εκτελέσιμη_διαδρομή='./drivers/geckodriver')

πρόγραμμα περιήγησης.παίρνω('http://random-name-generator.info/')

λίστα ονομάτων=πρόγραμμα περιήγησης.find_elements_by_css_selector('ol.nameList li')

Γιαόνομασελίστα ονομάτων:
Τυπώνω(όνομα.κείμενο)

πρόγραμμα περιήγησης.εγκαταλείπω()

Μόλις τελειώσετε, αποθηκεύστε το ex07.py Python script.

Εδώ, το browser.get () η μέθοδος φορτώνει την ιστοσελίδα δημιουργίας τυχαίων ονομάτων στο πρόγραμμα περιήγησης Firefox.

ο browser.find_elements_by_css_selector () μέθοδος χρησιμοποιεί τον επιλογέα CSS ol.nameList li να τα βρεις όλα στο στοιχεία μέσα στο καλούπι ετικέτα με το όνομα της τάξης λίστα ονομάτων Το Έχω αποθηκεύσει όλα τα επιλεγμένα στο στοιχεία στο λίστα ονομάτων μεταβλητός.

ΠΡΟΣ ΤΟ Για ο βρόχος χρησιμοποιείται για να επαναληφθεί μέσω του λίστα ονομάτων λίστα από στο στοιχεία. Σε κάθε επανάληψη, το περιεχόμενο του στο στοιχείο εκτυπώνεται στην κονσόλα.

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

$ python3 ex07.py

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

Παράδειγμα 5: Υποβολή φόρμας - Αναζήτηση στο DuckDuckGo

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

Πρώτα, επίσκεψη Μηχανή αναζήτησης DuckDuckGo από το πρόγραμμα περιήγησης ιστού Firefox.

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

Τώρα, δημιουργήστε το νέο σενάριο Python ex08.py και πληκτρολογήστε τις ακόλουθες γραμμές κωδικών στο σενάριο.

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά
πρόγραμμα περιήγησης=webdriver.Firefox(εκτελέσιμη_διαδρομή='./drivers/geckodriver')
πρόγραμμα περιήγησης.παίρνω('https://duckduckgo.com/')
searchInput=πρόγραμμα περιήγησης.find_element_by_id('search_form_input_homepage')
searchInput.send_keys(«σελήνιο hq»+ Κλειδιά.ΕΙΣΑΓΩ)

Μόλις τελειώσετε, αποθηκεύστε το ex08.py Python script.

Εδώ, το browser.get () η μέθοδος φορτώνει την αρχική σελίδα της μηχανής αναζήτησης DuckDuckGo στο πρόγραμμα περιήγησης ιστού Firefox.

ο browser.find_element_by_id () μέθοδος επιλέγει το στοιχείο εισόδου με το αναγνωριστικό search_form_input_homepage και το αποθηκεύει στο searchInput μεταβλητός.

ο searchInput.send_keys () η μέθοδος χρησιμοποιείται για την αποστολή βασικών δεδομένων τύπου στο πεδίο εισαγωγής. Σε αυτό το παράδειγμα, στέλνει τη συμβολοσειρά σελήνιο hq , και το πλήκτρο Enter πιέζεται χρησιμοποιώντας το Κλειδιά.ΕΝΤΕΡ συνεχής.

Μόλις η μηχανή αναζήτησης DuckDuckGo λάβει το πλήκτρο Enter πατήστε ( Κλειδιά.ΕΝΤΕΡ ), αναζητά και εμφανίζει το αποτέλεσμα.

Εκτελέστε το ex08.py Σενάριο Python, ως εξής:

$ python3 ex08.py

Όπως μπορείτε να δείτε, το πρόγραμμα περιήγησης ιστού Firefox επισκέφτηκε τη μηχανή αναζήτησης DuckDuckGo.

Πληκτρολόγησε αυτόματα σελήνιο hq στο πλαίσιο κειμένου αναζήτησης.

Μόλις το πρόγραμμα περιήγησης έλαβε το πλήκτρο Enter πατήστε ( Κλειδιά.ΕΝΤΕΡ ), εμφανίζει το αποτέλεσμα αναζήτησης.

Παράδειγμα 6: Υποβολή φόρμας στο W3Schools.com

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

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

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

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

απόσελήνιοεισαγωγήwebdriver
απόσελήνιο.webdriverΤοκοινόςΤοκλειδιά εισαγωγήΚλειδιά
πρόγραμμα περιήγησης=webdriver.Firefox(εκτελέσιμη_διαδρομή='./drivers/geckodriver')
πρόγραμμα περιήγησης.παίρνω('https://www.w3schools.com/html/html_forms.asp')
fname=πρόγραμμα περιήγησης.find_element_by_id('fname')
fname.Σαφή()
fname.send_keys('Shahriar')
lname=πρόγραμμα περιήγησης.find_element_by_id('όνομα')
lname.Σαφή()
lname.send_keys('Shovon')
κουμπί υποβολής=πρόγραμμα περιήγησης.find_element_by_css_selector('εισαγωγή [type =' υποβολή ']')
κουμπί υποβολής.send_keys(Κλειδιά.ΕΙΣΑΓΩ)

Μόλις τελειώσετε, αποθηκεύστε το ex09.py Python script.

Εδώ, το browser.get () η μέθοδος ανοίγει τη σελίδα φόρμας HTML W3schools στο πρόγραμμα περιήγησης ιστού Firefox.

ο browser.find_element_by_id () μέθοδος βρίσκει τα πεδία εισαγωγής με το αναγνωριστικό fname και lname και τα αποθηκεύει στο fname και lname μεταβλητές, αντίστοιχα.

ο fname.clear () και lname.clear () οι μέθοδοι καθαρίζουν το προεπιλεγμένο όνομα (John) fname αξία και επώνυμο (Doe) lname τιμή από τα πεδία εισαγωγής.

ο fname.send_keys () και lname.send_keys () μεθόδους τύπου Shahriar και Σοβόν στο Ονομα και Επίθετο πεδία εισαγωγής, αντίστοιχα.

ο browser.find_element_by_css_selector () μέθοδος επιλέγει το Κουμπί υποβολής της φόρμας και το αποθηκεύει στο κουμπί υποβολής μεταβλητός.

ο submitButton.send_keys () η μέθοδος στέλνει το πλήκτρο Enter πατήστε ( Κλειδιά.ΕΝΤΕΡ ) στο Κουμπί υποβολής της μορφής. Αυτή η ενέργεια υποβάλλει τη φόρμα.

Εκτελέστε το ex09.py Σενάριο Python, ως εξής:

$ python3 ex09.py

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

συμπέρασμα

Αυτό το άρθρο θα σας βοηθήσει να ξεκινήσετε με τη δοκιμή προγράμματος περιήγησης Selenium, τον αυτοματισμό ιστού και τις βιβλιοθήκες απόσυρσης ιστού στο Python 3. Για περισσότερες πληροφορίες, ανατρέξτε στο επίσημη τεκμηρίωση Selenium Python Το