SOCKS მარშრუტიზაცია aiohttp-ში aiohttp-socks-ით
გამოიყენეთ SOCKS-ის მცოდნე თავსებადი კონექტორი ნაცვლად იმისა, რომ დააკოპიროთ ძველი aiohttp პროქსის მაგალითი წაშლილი კონექტორის კლასებით.
aiohttp აღწერს HTTP პროქსის მხარდაჭერას მოთხოვნის პარამეტრებით. SOCKS საბოლოო წერტილს სჭირდება იმპლემენტაცია, რომელიც SOCKS-ზე საუბრობს. პროქსის URL-ის პორტის 1080-ზე შეცვლა ამ იმპლემენტაციას არ იძლევა.
async ფუნქციის შიგნით გამოიყენეთ მხარდაჭერილი 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()ეს ვარაუდობს, რომ კონექტორის პაკეტი უკვე ხელმისაწვდომია და თავსებადია აპლიკაციაში არსებულ aiohttp ვერსიასთან. საბოლოო წერტილი საილუსტრაციოა; SOCKS5 პროქსების სია გთავაზობთ საჯარო კანდიდატებს კონექტორის URL-ისთვის. დააყენეთ დროის ლიმიტისა და პასუხის ზომის პოლიტიკა რეალური დატვირთვისთვის.
ძველი პასუხები მიუთითებს სხვადასხვა პაკეტსა და კონექტორის სახელზე: aiosocks, aiosocksy და aiohttp-socks არ არის ურთიერთშემცვლელი იმპორტის გზები. წაიკითხეთ რეალურად გამოყენებული პაკეტის მოთხოვნები და მაგალითი. ერთი პროექტის კლასის მეორის არგუმენტებთან შერწყმა შეიძლება ჩავარდეს პროქსის კავშირის მცდელობამდე.
შეინახეთ კონექტორი და სესიის სიცოცხლე ერთად და შეამოწმეთ ჰოსტის სახელის გარჩევის ქცევა სადაც მნიშვნელოვანია. SOCKS URL-ის უკავშირო HTTP პროქსის პარამეტრზე გადაცემა არ ცვლის კონექტორის დოკუმენტირებულ გზას.