Το Semalt Expert εξηγεί πώς να ξύσετε έναν ιστότοπο AJAX χρησιμοποιώντας το Python

Το web scraping είναι μια μέθοδος που χρησιμοποιεί τη χρήση λογισμικού για την εξαγωγή δεδομένων από μια ιστοσελίδα. Υπάρχουν πολλά εργαλεία που πρέπει να χρησιμοποιηθούν για την απόσπαση του ιστού με πύθωνα, μερικά από αυτά είναι? Sky, Scrapy, αιτήματα και όμορφη σούπα. Ωστόσο, τα περισσότερα από αυτά τα εργαλεία περιορίζονται από το γεγονός ότι ανακτούν μόνο στατικό HTML που προέρχεται από το διακομιστή και όχι το δυναμικό μέρος που αποδίδεται από τη JavaScript.

Ωστόσο, υπάρχουν μερικές τεχνικές στις οποίες μπορεί να ξεπεραστεί αυτό το πρόβλημα:

1. Αυτοματοποιημένα προγράμματα περιήγησης

Μπορείτε να χρησιμοποιήσετε αυτοματοποιημένα προγράμματα περιήγησης, όπως το Selenium ή το Splash, τα οποία είναι πλήρη προγράμματα περιήγησης που λειτουργούν χωρίς κεφαλή. Ωστόσο, η ρύθμισή τους μπορεί να είναι αρκετά περίπλοκη, και έτσι θα επικεντρωθούμε στη δεύτερη επιλογή παρακάτω.

2. Παρακολούθηση κλήσεων AJAX

Αυτό περιλαμβάνει την προσπάθεια παρακολούθησης των κλήσεων AJAX από τη σελίδα και την προσπάθεια αναπαραγωγής ή αναπαραγωγής τους.

Σε αυτό το άρθρο, θα επικεντρωθούμε στον τρόπο λήψης κλήσεων AJAX και αναπαραγωγής τους χρησιμοποιώντας τη βιβλιοθήκη αιτημάτων και το πρόγραμμα περιήγησης Google Chrome. Παρόλο που πλαίσια όπως το Scrapy μπορεί να σας προσφέρουν μια πιο αποτελεσματική λύση όταν πρόκειται για ξύσιμο, δεν απαιτείται για όλες τις περιπτώσεις. Οι κλήσεις AJAX πραγματοποιούνται ως επί το πλείστον σε ένα API που θα επιστρέφει ένα αντικείμενο JSON το οποίο μπορεί εύκολα να χειριστεί η βιβλιοθήκη αιτημάτων.

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

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

Για να το κάνετε αυτό, το μόνο που έχετε να κάνετε είναι να ανοίξετε το πρόγραμμα περιήγησης Chrome που χρησιμοποιούν τα DevTools και να μεταβείτε στην υποενότητα XHR. Το XHR είναι μια διεπαφή που εκτελεί αιτήματα HTTP και HTTPS. Έτσι, τα αιτήματα AJAX θα εμφανίζονται εδώ. Όταν κάνετε διπλό κλικ στην κλήση AJAX, θα βρείτε πολλές πληροφορίες στα καταστήματα. Μπορείτε επίσης να κάνετε προεπισκόπηση των αιτημάτων.

Θα σημειώσετε ότι πολλά δεδομένα αποστέλλονται στον διακομιστή. Ωστόσο, μην ανησυχείτε γιατί δεν απαιτείται όλο αυτό. Για να δείτε ποια δεδομένα χρειάζεστε, μπορείτε να ανοίξετε μια κονσόλα και να εκτελέσετε διάφορα αιτήματα ανάρτησης στον ιστότοπο. Τώρα που ξέρετε πώς λειτουργεί η σελίδα και αποκρυπτογραφήσατε την κλήση AJAX, μπορείτε να γράψετε την ξύστρα σας.

Ίσως να ρωτάτε, "γιατί να μην χρησιμοποιήσετε ένα αυτοματοποιημένο πρόγραμμα περιήγησης;" Η λύση είναι απλή. προσπαθήστε πάντα να επαναλάβετε τις κλήσεις AJAX πριν ξεκινήσετε κάτι πολύ πιο βαρύ και περίπλοκο, όπως ένα αυτοματοποιημένο πρόγραμμα περιήγησης. Είναι απλούστερο και ελαφρύτερο.

png

mass gmail