Python Requests-এ যেভাবে প্রক্সি ব্যবহার করবেন (HTTP/HTTPS ও Session পুলিং)
Updated:
Python-এর requests লাইব্রেরি 'http' এবং 'https' উভয় স্কিমকে http://user:pass@ip:port-এ ম্যাপ করা একটি proxies ডিকশনারির মাধ্যমে অথেনটিকেটেড VinaProxy প্রক্সি গ্রহণ করে। এই ডিকশনারিটি একটি পারসিস্টেন্ট requests.Session()-এ যুক্ত করলে দ্রুত ও কম ওভারহেডের ওয়েব স্ক্র্যাপিংয়ের জন্য আন্ডারলাইং TCP সকেট পুনরায় ব্যবহার করা যায়।
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}- 1টি IP৪০,০০০₫
- 5+ টি IP৩৫,০০০₫
- 10+ টি IP২৫,০০০₫
- 20+ টি IP২৫,০০০₫
- 50+ টি IP২৫,০০০₫
- 100+ টি IP২৫,০০০₫
- 200+ টি IP২৫,০০০₫
- 500+ টি IP২৫,০০০₫
- 1000+ টি IP২২,০০০₫
- 2000+ টি IP২০,০০০₫
- 1টি IP৪০,০০০₫
- 5+ টি IP৩৫,০০০₫
- 10+ টি IP২৫,০০০₫
- 20+ টি IP২৫,০০০₫
- 50+ টি IP২৫,০০০₫
- 100+ টি IP২৫,০০০₫
- 200+ টি IP২৫,০০০₫
- 500+ টি IP২৫,০০০₫
- 1000+ টি IP২২,০০০₫
- 2000+ টি IP২০,০০০₫
proxies ডিকশনারি ফরম্যাটিং ও Session পুনরায় ব্যবহার
প্রতিটি URL-এ requests.get() কল করলে প্রতিবার নতুন TCP কানেকশন ও TLS হ্যান্ডশেক তৈরি হয়। আপনার প্রক্সিকে session = requests.Session()-এর সাথে যুক্ত রাখলে পরপর রিকোয়েস্ট জুড়ে প্রক্সি টানেল খোলা থাকে।
| Requests প্যারামিটার | প্রস্তাবিত সিনট্যাক্স | প্রযুক্তিগত উদ্দেশ্য |
|---|---|---|
'http' key | 'http://user:pass@ip:port' | প্রক্সির মাধ্যমে সাধারণ HTTP রিকোয়েস্ট রাউট করে |
'https' key | 'http://user:pass@ip:port' | http:// স্কিম ব্যবহার করে যাতে urllib3 TLS-এর জন্য একটি HTTP CONNECT টানেল তৈরি করে |
timeout tuple | timeout=(5, 15) | 5s কানেক্ট টাইমআউট এবং 15s রিড টাইমআউট ওয়ার্কার থ্রেড আটকে যাওয়া প্রতিরোধ করে |
| Pool rotation | itertools.cycle(proxy_list) | আপনার ডেডিকেটেড স্ট্যাটিক IP পুলে সমানভাবে সাইকেল করে |
সাধারণ urllib3 ও ProxyError সংক্রান্ত জটিলতা এড়ানো
- আপনার প্রক্সি পোর্টে স্পষ্টভাবে TLS-over-TLS প্রয়োজন না হলে,
'http'এবং'https'উভয় ডিকশনারি কী-এর জন্য প্রক্সি URL স্কিম হিসেবে সর্বদাhttp://ব্যবহার করুন (https://নয়) urllib.parse.quote(password, safe='')ব্যবহার করে পাসওয়ার্ডের বিশেষ অক্ষরগুলো URL-এনকোড করুন- একটি
407 Proxy Authentication Requiredএরর নির্দেশ করে যে আপনার URL স্ট্রিংয়ের ইউজারনেম বা পাসওয়ার্ড ড্যাশবোর্ড ক্রেডেনশিয়ালের সাথে মেলেনি httpx.Client(proxy='http://user:pass@ip:port')এবংaiohttp-এরsession.get(url, proxy=...)-এর সাথেও এটি একইভাবে কাজ করে
ধাপে ধাপে
- 1
ip:port:user:pass ফরম্যাটকে URL সিনট্যাক্সে রূপান্তর করুন
আপনার VinaProxy তালিকাকে
http://user:pass@ip:portস্ট্রিংয়ে রূপান্তর করতে আমাদের Proxy Format Converter ব্যবহার করুন। - 2
proxies ডিকশনারি নির্ধারণ করুন
আপনার Python স্ক্রিপ্টে
proxies = {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}সেট করুন। - 3
একটি requests.Session() ইনস্ট্যান্সে যুক্ত করুন
পারসিস্টেন্ট
Keep-Aliveপুলিংয়ের জন্যs = requests.Session()ইনিশিয়ালাইজ করুন এবংs.proxies.update(proxies)কল করুন। - 4
টেস্ট রিকোয়েস্ট পাঠিয়ে এক্সিট IP যাচাই করুন
সক্রিয় প্রক্সি IP নিশ্চিত করতে
print(s.get('https://vinaproxy.com/api/my-ip', timeout=10).json())রান করুন।
সচরাচর জিজ্ঞাসিত প্রশ্নাবলী
'https' কী-তে কেন 'http://user:pass@ip:port' ব্যবহার করা হয়?
http:// প্রিফিক্সটি urllib3-কে নির্দেশ করে কীভাবে প্রক্সি সার্ভারের সাথে কানেক্ট হতে হবে (স্ট্যান্ডার্ড HTTP CONNECT ব্যবহার করে), যেখানে টার্গেট https:// ওয়েবসাইটে আপনার এন্ড-টু-এন্ড ট্র্যাফিক সম্পূর্ণ TLS-এনক্রিপ্টেড থাকে।
Python-এ রিকোয়েস্ট জুড়ে আমি কীভাবে 25টি স্ট্যাটিক প্রক্সি রোটেট করব?
আপনার 25টি প্রক্সি URL pool = itertools.cycle(PROXIES)-এ লোড করুন এবং প্রতি IP-তে পরিমিত রেট লিমিটিং বজায় রেখে প্রতি রিকোয়েস্টে proxies={'http': p, 'https': p} পাস করুন।
VinaProxy কি Python স্ক্র্যাপিং স্ক্রিপ্টে ব্যান্ডউইথ মিটার করে?
না। সমস্ত Dedicated IPv4 এবং Static ISP প্ল্যানে আনলিমিটেড মাসিক ট্র্যাফিক অন্তর্ভুক্ত রয়েছে।
তৈরি করুন আনমিটারড Python স্ক্র্যাপিং পুল
7টি দেশে তাৎক্ষণিক Dedicated IPv4 এবং Static ISP প্রক্সি।
Python প্রক্সি কিনুন