Semalt: Ξύσιμο Ιστού με Python

Έχετε περάσει από μια από τις τρομακτικές στιγμές που δεν έχετε Wi-Fi. Εάν ναι, τότε έχετε συνειδητοποιήσει πόσο μεγάλο μέρος του τι κάνετε στον υπολογιστή σας βασίζεται στο Διαδίκτυο. Από καθαρή συνήθεια, θα βρείτε τον εαυτό σας να ελέγχει τα email σας, να βλέπετε τις φωτογραφίες Instagram του φίλου σας καθώς και να διαβάζετε τα tweets του.

Δεδομένου ότι τόσο μεγάλη εργασία στον υπολογιστή περιλαμβάνει τις διαδικτυακές διαδικασίες, θα ήταν πολύ βολικό εάν τα προγράμματά σας θα μπορούσαν επίσης να συνδεθούν στο διαδίκτυο. Αυτό ισχύει για την απόξεση ιστού . Περιλαμβάνει τη χρήση ενός προγράμματος για λήψη και επεξεργασία περιεχομένου από τον Ιστό. Για παράδειγμα, το Google χρησιμοποιεί μια ποικιλία προγραμμάτων απομάκρυνσης για την ευρετηρίαση ιστοσελίδων για τη μηχανή αναζήτησης.

Υπάρχουν πολλοί τρόποι με τους οποίους μπορείτε να αποκόψετε δεδομένα από το Διαδίκτυο. Πολλές από αυτές τις μεθόδους απαιτούν την εντολή μιας ποικιλίας γλωσσών προγραμματισμού όπως Python και R. Για παράδειγμα, με το Python, μπορείτε να χρησιμοποιήσετε μια σειρά από ενότητες όπως Requests, Beautiful soup, Webbrowser και Selenium.

Η ενότητα "Αιτήματα" σάς επιτρέπει να κάνετε εύκολα λήψη αρχείων από τον Ιστό, χωρίς να χρειάζεται να ανησυχείτε για δύσκολα ζητήματα, όπως προβλήματα σύνδεσης, σφάλματα δικτύου και συμπίεση δεδομένων. Δεν έρχεται απαραίτητα με το Python, και έτσι θα πρέπει να το εγκαταστήσετε πρώτα.

Η ενότητα αναπτύχθηκε επειδή η ενότητα "urllib2" της Python έχει πολλές επιπλοκές καθιστώντας δύσκολη τη χρήση. Στην πραγματικότητα είναι πολύ εύκολο στην εγκατάσταση. Το μόνο που έχετε να κάνετε είναι να εκτελέσετε αιτήματα εγκατάστασης pip από τη γραμμή εντολών. Στη συνέχεια, πρέπει να κάνετε μια απλή δοκιμή για να βεβαιωθείτε ότι η μονάδα έχει εγκατασταθεί σωστά. Για να το κάνετε αυτό, μπορείτε να πληκτρολογήσετε ">>> εισαγωγή αιτημάτων" στο διαδραστικό κέλυφος. Εάν δεν εμφανιστούν μηνύματα σφάλματος, τότε η εγκατάσταση ήταν επιτυχής.

Για να κατεβάσετε μια σελίδα, πρέπει να ξεκινήσετε τη συνάρτηση 'request.get ()'. Η συνάρτηση παίρνει μια συμβολοσειρά URL για λήψη και, στη συνέχεια, επιστρέφει ένα αντικείμενο «απόκρισης». Αυτό περιέχει την απάντηση που επέστρεψε ο διακομιστής ιστού για το αίτημά σας. Εάν το αίτημά σας επιτύχει, τότε η ληφθείσα ιστοσελίδα αποθηκεύεται ως συμβολοσειρά στη μεταβλητή κειμένου αντικειμένων απόκρισης.

Το αντικείμενο απόκρισης έχει συνήθως ένα χαρακτηριστικό κώδικα κατάστασης που μπορείτε να χρησιμοποιήσετε για να μάθετε εάν η λήψη σας ήταν επιτυχής. Ομοίως, μπορείτε να καλέσετε τη μέθοδο 'raise_for_status ()' σε ένα αντικείμενο απόκρισης. Αυτό δημιουργεί μια εξαίρεση εάν προέκυψαν σφάλματα κατά τη λήψη του αρχείου. Είναι ένας πολύ καλός τρόπος για να βεβαιωθείτε ότι ένα πρόγραμμα σταματά σε περίπτωση κακής λήψης.

Από εδώ, μπορείτε να αποθηκεύσετε το αρχείο ιστού που έχετε λάβει στον σκληρό σας δίσκο χρησιμοποιώντας τις τυπικές λειτουργίες, «ανοιχτό ()» και «εγγραφή ()». Ωστόσο, για να διατηρήσετε την κωδικοποίηση Unicode του κειμένου, θα πρέπει να αντικαταστήσετε τα δεδομένα κειμένου με δυαδικά δεδομένα.

Για να γράψετε τα δεδομένα σε ένα αρχείο, μπορείτε να χρησιμοποιήσετε τη μέθοδο «για» βρόχο με «iter_content ()». Αυτή η μέθοδος επιστρέφει πολλά δεδομένα σε κάθε επανάληψη μέσω του βρόχου. Κάθε όγκος είναι σε byte και πρέπει να καθορίσετε πόσα byte θα περιέχει κάθε όγκο. Μόλις ολοκληρώσετε τη σύνταξη, καλέστε «Κλείσιμο ()» για να κλείσετε το αρχείο και η εργασία σας έχει τελειώσει.