Κρατήστε την υποβολή φόρμας του MechanicalSoup στην ίδια διαδρομή διαμεσολαβητή
Συνδέστε μια ρυθμισμένη συνεδρία Requests στο StatefulBrowser ώστε το άνοιγμα της σελίδας και η υποβολή της φόρμας να μοιράζονται διαδρομή και cookies.
import mechanicalsoup
import requests
session = requests.Session()
session.trust_env = False
session.proxies.update({
"http": "http://proxy.example.net:8080",
"https": "http://proxy.example.net:8080",
})
browser = mechanicalsoup.StatefulBrowser(session=session)Επιλέξτε το τελικό σημείο πριν ανοίξετε τη σελίδα της φόρμας. Για μια δημόσια φόρμα όπου επιτρέπονται δημόσιοι διαμεσολαβητές, μπορεί να είναι υποψήφιος από τη λίστα διαμεσολαβητών HTTP. Δημιουργήστε τη συνεδρία και περάστε τη στο StatefulBrowser όπως φαίνεται. Χρησιμοποιήστε τον ίδιο περιηγητή για open, επιλογή φόρμας και submit_selected· κλείστε τον με browser.close() όταν τελειώσει η ροή εργασίας.
Έτσι η πολιτική διαμεσολαβητή και η κατάσταση των cookies μένουν στη συνεδρία που χρησιμοποιείται για όλη την ανταλλαγή. Ένα όρισμα proxies που δίνεται σε μία αρχική ανάκτηση δεν ρυθμίζει αυτόματα μια μεταγενέστερη υποβολή.
Το trust_env = False κάνει τη διαδρομή αυτού του παραδείγματος ανεξάρτητη από τις ρυθμίσεις διαμεσολαβητή περιβάλλοντος του Requests. Επίσης απενεργοποιεί την επιλογή πακέτου CA από το περιβάλλον και τον έλεγχο ταυτότητας με .netrc. Δώστε τα ρητά αν τα χρειάζεται η ροή εργασίας, ή λάβετε υπόψη το περιβάλλον όταν επιλέγετε άλλη πολιτική.