Αν η εργασία είναι ο έλεγχος αποκρίσεων HTTP και η παρακολούθηση συνηθισμένων συνδέσμων, ένας πλήρης περιηγητής δεν χρειάζεται πάντα. Το Ruby Mechanize εκθέτει το proxy στον agent που εκτελεί αυτά τα αιτήματα:

agent = Mechanize.new('office-route')
begin
  agent.set_proxy('proxy.example', 8080)
  page = agent.get('https://www.example.com/')
  puts page.code
ensure
  agent.shutdown
end

Αυτό προϋποθέτει ότι η βιβλιοθήκη mechanize έχει φορτωθεί. Για έναν επιτρεπόμενο έλεγχο δημόσιας σελίδας χωρίς έλεγχο ταυτότητας proxy, η λίστα proxy HTTP παρέχει κατάλληλες τιμές host/port για το παράδειγμα. Η μέθοδος proxy δέχεται επίσης όνομα χρήστη και κωδικό πρόσβασης ως προαιρετικά τρίτα και τέταρτα ορίσματα όταν το endpoint τα απαιτεί.

Επαναχρησιμοποιήστε τον ρυθμισμένο agent για αιτήματα που ανήκουν στην ίδια συνεδρία περιήγησης. Μεταφέρει cookies και ιστορικό καθώς και ρυθμίσεις δικτύου. Η αλλαγή του proxy εξόδου δεν δημιουργεί από μόνη της νέα ταυτότητα ούτε πετάει ένα cookie σύνδεσης.

Για πολλές συνεδρίες proxy, δώστε σε καθεμία τον δικό της agent αντί να αλλάζετε έναν κοινόχρηστο agent ενώ η εργασία βρίσκεται σε εξέλιξη. Η βιβλιοθήκη τεκμηριώνει επίσης μοναδικά ονόματα συνδέσεων όταν απαιτούνται διαχωρισμένες συνδέσεις SSL· το όνομα του κατασκευαστή στο παράδειγμα κάνει αυτή την επιλογή ρητή.

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

Το Mechanize δεν αναπαράγει την εκτέλεση JavaScript του περιηγητή. Χρησιμοποιήστε πραγματικό περιηγητή όταν η συμπεριφορά υπό δοκιμή εξαρτάται από σενάρια, απόδοση ή έλεγχο ταυτότητας ειδικό για περιηγητή. Μια επιτυχημένη λήψη HTTP μέσω του proxy απαντά στο στενότερο ερώτημα ότι αυτός ο agent μπόρεσε να κάνει εκείνο το αίτημα.

Σχετικά άρθρα