Εάν βρίσκεστε συχνά να λαμβάνετε δεδομένα από ιστότοπους, θα πρέπει πιθανώς να εξετάσετε το ενδεχόμενο αυτοματοποίησης της διαδικασίας. Μερικές φορές αναφέρεται ως "απόξεση ιστού", η διαδικασία είναι συνηθισμένη για ιστότοπους που δεν παρέχουν επίσημο API ή ροή δεδομένων. Φυσικά, δεν θα φτάσετε πουθενά εάν ο ιστότοπος που προσπαθείτε να ανακτήσετε δεν είναι διαθέσιμος.
Εάν διαχειρίζεστε τον δικό σας ιστότοπο, πιθανότατα είχατε να αντιμετωπίσετε το χρόνο διακοπής λειτουργίας στο παρελθόν. Μπορεί να είναι απογοητευτικό, να σας κάνει να χάσετε επισκέπτες και να διακόψετε οποιαδήποτε δραστηριότητα μπορεί να ευθύνεται ο ιστότοπός σας. Σε τέτοιες περιπτώσεις, αξίζει να μπορείτε να ελέγχετε εύκολα τη διαθεσιμότητα του ιστότοπού σας.
Η Python είναι μια εξαιρετική γλώσσα για δέσμες ενεργειών και η συνοπτική αλλά ευανάγνωστη σύνταξή της καθιστά την υλοποίηση ενός ελεγκτή ιστότοπου μια απλή εργασία.
Δημιουργία του Εξατομικευμένου Έλεγχου Ιστοτόπου σας
Ο έλεγχος ιστοτόπων είναι προσαρμοσμένος για να φιλοξενεί πολλούς ιστότοπους ταυτόχρονα. Αυτό σας επιτρέπει να απενεργοποιείτε εύκολα ιστότοπους που δεν σας ενδιαφέρουν πλέον ή να αρχίσετε να ελέγχετε ιστότοπους που θα εκκινήσετε στο μέλλον. Το πούλι είναι μια ιδανική «εφαρμογή σκελετού» στην οποία θα μπορούσατε να δημιουργήσετε περαιτέρω, αλλά δείχνει μια βασική προσέγγιση για την ανάκτηση δεδομένων ιστού.
Εισαγωγή βιβλιοθηκών σε Python
Για να ξεκινήσετε το έργο, πρέπει να εισαγάγετε το αιτήσεων βιβλιοθήκη στην Python με το εισαγωγή λειτουργία.
εισαγωγή αιτήσεων
Η βιβλιοθήκη αιτημάτων είναι χρήσιμη για την επικοινωνία με ιστότοπους. Μπορείτε να το χρησιμοποιήσετε για να στείλετε αιτήματα HTTP και να λάβετε δεδομένα απόκρισης.
Αποθηκεύστε τις διευθύνσεις URL του ιστότοπου σε μια λίστα
Αφού εισαγάγετε τη βιβλιοθήκη, θα πρέπει να ορίσετε και να αποθηκεύσετε τις διευθύνσεις URL του ιστότοπου σε μια λίστα. Αυτό το βήμα σάς επιτρέπει να διατηρείτε πολλαπλές διευθύνσεις URL, τις οποίες μπορείτε να ελέγξετε με τον ελεγκτή ιστότοπου.
εισαγωγή αιτήσεων
website_url = [
" https://www.google.co.σε",
" https://www.yahoo.com",
" https://www.amazon.co.σε",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]
Η μεταβλητή Διεύθυνση Ιστοσελίδας αποθηκεύει τη λίστα των διευθύνσεων URL. Μέσα στη λίστα, ορίστε κάθε διεύθυνση URL που θέλετε να ελέγξετε ως μεμονωμένη συμβολοσειρά. Μπορείτε να χρησιμοποιήσετε τα παραδείγματα URL στον κώδικα για δοκιμή ή μπορείτε να τα αντικαταστήσετε για να αρχίσετε να ελέγχετε αμέσως τους δικούς σας ιστότοπους.
Στη συνέχεια, αποθηκεύστε τα μηνύματα για κοινά Κωδικοί απόκρισης HTTP. Μπορείτε να τα διατηρήσετε σε ένα λεξικό και να δημιουργήσετε ευρετήριο για κάθε μήνυμα με τον αντίστοιχο κωδικό κατάστασης. Το πρόγραμμά σας μπορεί στη συνέχεια να χρησιμοποιήσει αυτά τα μηνύματα αντί για κωδικούς κατάστασης για καλύτερη αναγνωσιμότητα.
καταστάσεις = {
200: "Διαθέσιμος ιστότοπος",
301: "Μόνιμη ανακατεύθυνση",
302: "Προσωρινή ανακατεύθυνση",
404: "Δεν βρέθηκε",
500: "Εσωτερικό Σφάλμα Διακομιστή",
503: "Μη διαθέσιμη υπηρεσία"
}
Δημιουργία βρόχου για τον έλεγχο της κατάστασης του ιστότοπου
Για να ελέγξετε κάθε URL με τη σειρά σας, θα θέλετε περιηγηθείτε στη λίστα των ιστοσελίδων. Μέσα στον βρόχο, ελέγξτε την κατάσταση κάθε τοποθεσίας στέλνοντας ένα αίτημα μέσω της βιβλιοθήκης αιτημάτων.
Για url σε Διεύθυνση Ιστοσελίδας:
προσπαθήστε:
web_response = requests.get (url)
εκτύπωση (url, καταστάσεις[web_response.status_code])
εκτός:
εκτύπωση (url, καταστάσεις[web_response.status_code])
Οπου:
- για url...επαναλαμβάνεται πάνω από τη λίστα των διευθύνσεων URL.
- url είναι η μεταβλητή στην οποία ο βρόχος for εκχωρεί κάθε διεύθυνση URL.
- προσπαθώ/εκτόςχειρίζεται τυχόν εξαιρέσεις που μπορεί να προκύψει.
- web_response είναι μια μεταβλητή που παρέχει σε μια ιδιότητα τον κωδικό κατάστασης της απάντησης
Ολόκληρο το απόσπασμα κώδικα
Εάν προτιμάτε να ελέγξετε ολόκληρο τον κώδικα με μία κίνηση, εδώ είναι μια πλήρης λίστα κωδικών για αναφορά.
εισαγωγή αιτήσεων
website_url = [
" https://www.google.co.σε",
" https://www.yahoo.com",
" https://www.amazon.co.σε",
" https://www.pipsnacks.com/404",
" http://the-internet.herokuapp.com/status_codes/301",
" http://the-internet.herokuapp.com/status_codes/500"
]καταστάσεις = {
200: "Διαθέσιμος ιστότοπος",
301: "Μόνιμη ανακατεύθυνση",
302: "Προσωρινή ανακατεύθυνση",
404: "Δεν βρέθηκε",
500: "Εσωτερικό Σφάλμα Διακομιστή",
503: "Μη διαθέσιμη υπηρεσία"
}Για url σε Διεύθυνση Ιστοσελίδας:
προσπαθήστε:
web_response = requests.get (url)
εκτύπωση (url, καταστάσεις[web_response.status_code])
εκτός:
εκτύπωση (url, καταστάσεις[web_response.status_code])
Και εδώ είναι ένα παράδειγμα εκτέλεσης του κώδικα:
Οι Δυνατότητες Κωδικοποίησης της Python στο Web Scraping
Οι βιβλιοθήκες τρίτων της Python είναι ιδανικές για εργασίες όπως η απόξεση ιστού και η ανάκτηση δεδομένων μέσω HTTP.
Μπορείτε να στείλετε αυτοματοποιημένα αιτήματα σε ιστότοπους για την εκτέλεση διαφόρων τύπων εργασιών. Αυτά μπορεί να περιλαμβάνουν την ανάγνωση τίτλων ειδήσεων, τη λήψη εικόνων και την αυτόματη αποστολή email.