Scrapy AutoThrottle μέσω proxy: υποδοχές και καθυστέρηση
Κρατήστε τις υποδοχές λήψης του ιστότοπου-στόχου χωριστές από τις διαδρομές του proxy και ερμηνεύστε την καθυστέρηση ως τη διαδρομή του αιτήματος που παρατηρήθηκε.
Από προεπιλογή, το Scrapy εκχωρεί υποδοχές λήψης με βάση τον τομέα του URL του αιτήματος. Η προσθήκη ενός HTTP proxy σε ένα αίτημα δεν μετατρέπει αυτό το URL σε όνομα κεντρικού υπολογιστή του proxy. Επομένως, αιτήματα προς διαφορετικούς ιστότοπους μπορούν να διατηρούν διαφορετικές υποδοχές ενώ μοιράζονται έναν ενδιάμεσο.
Το AutoThrottle ρυθμίζει την καθυστέρηση κάθε υποδοχής με βάση την παρατηρούμενη καθυστέρηση λήψης. Το τυπικό όριο ταυτοχρονισμού ανά τομέα και η ελάχιστη καθυστέρηση λήψης εξακολουθούν να ισχύουν.
Ελέγξτε την ομαδοποίηση πριν αλλάξετε τον αλγόριθμο
Ένα προσαρμοσμένο middleware μπορεί να εκχωρήσει request.meta["download_slot"], παρακάμπτοντας την κανονική επιλογή υποδοχής. Ορισμένες επεκτάσεις proxy χρησιμοποιούν τη δική τους ομαδοποίηση. Ελέγξτε αυτές τις ρυθμίσεις αν φαίνεται ότι άσχετοι ιστότοποι μοιράζονται έναν περιοριστή.
Αντίστροφα, η εκχώρηση διαφορετικής υποδοχής για κάθε proxy μπορεί να επιτρέψει σε πολλούς proxy να προσεγγίζουν τον ίδιο στόχο ταυτόχρονα. Αυτό μπορεί να ακυρώσει ένα όριο σε επίπεδο ιστότοπου που ο crawler όφειλε να σέβεται. Επιλέξτε το κλειδί υποδοχής ανάλογα με τον πόρο που προστατεύεται.
Η καθυστέρηση περιλαμβάνει τη διαδρομή που χρησιμοποιήσατε
Το Scrapy μετρά την καθυστέρηση από την αποστολή του αιτήματος έως τη λήψη των κεφαλίδων HTTP. Ένα αίτημα που μεταφέρεται μέσω proxy μπορεί να περιλαμβάνει σε αυτήν την παρατήρηση την καθυστέρηση ουράς και προώθησης του ενδιάμεσου. Το AutoThrottle δεν λαμβάνει ξεχωριστό χρόνο επεξεργασίας μόνο της προέλευσης.
Η αύξηση του ταυτοχρονισμού δεν μπορεί να κάνει αυτή τη μέτρηση να απομονώσει τον ιστότοπο. Κρατήστε την ευγένεια προς τον στόχο και τη χωρητικότητα του proxy ως ξεχωριστά όρια όταν και τα δύο έχουν σημασία. Ένας κοινόχρηστος proxy μπορεί να χρειάζεται πρόσθετο προϋπολογισμό ταυτοχρονισμού στις υποδοχές των στόχων, ενώ κάθε στόχος διατηρεί τη δική του πολιτική ρυθμού.