Δρομολόγηση SOCKS στο aiohttp με το aiohttp-socks
Χρησιμοποιήστε έναν συμβατό connector που γνωρίζει SOCKS αντί να αντιγράψετε ένα παλιό παράδειγμα proxy του aiohttp με αφαιρεμένες κλάσεις connector.
Το aiohttp τεκμηριώνει την υποστήριξη HTTP proxy μέσω των επιλογών αιτήματος. Ένα τελικό σημείο SOCKS χρειάζεται υλοποίηση που μιλά SOCKS. Η αλλαγή της θύρας του URL του proxy σε 1080 δεν παρέχει αυτή την υλοποίηση.
Μέσα σε μια συνάρτηση async, χρησιμοποιήστε τον connector που παρέχει το συντηρούμενο έργο aiohttp-socks:
import aiohttp
from aiohttp_socks import ProxyConnector
connector = ProxyConnector.from_url('socks5://203.0.113.10:1080')
async with aiohttp.ClientSession(connector=connector) as session:
async with session.get('https://example.com/') as response:
body = await response.read()Αυτό προϋποθέτει ότι το πακέτο connector είναι ήδη διαθέσιμο και συμβατό με την έκδοση aiohttp στην εφαρμογή. Το τελικό σημείο είναι ενδεικτικό· η λίστα proxy SOCKS5 προσφέρει δημόσιους υποψηφίους για το URL του connector. Ρυθμίστε πολιτική χρονικού ορίου και μεγέθους απόκρισης για τον πραγματικό φόρτο εργασίας.
Οι παλιές απαντήσεις αναφέρονται σε διαφορετικά πακέτα και ονόματα connector: τα aiosocks, aiosocksy και aiohttp-socks δεν είναι εναλλάξιμες διαδρομές εισαγωγής. Διαβάστε τις απαιτήσεις και το παράδειγμα για το πακέτο που χρησιμοποιείται πραγματικά. Ο συνδυασμός κλάσης ενός έργου με ορίσματα άλλου μπορεί να αποτύχει πριν γίνει οποιαδήποτε απόπειρα σύνδεσης proxy.
Κρατήστε τον connector και τη διάρκεια ζωής της συνεδρίας μαζί και ελέγξτε τη συμπεριφορά επίλυσης ονομάτων κεντρικού υπολογιστή όπου έχει σημασία. Η μετάβαση ενός URL SOCKS σε μια άσχετη επιλογή HTTP proxy δεν υποκαθιστά την τεκμηριωμένη διαδρομή του connector.