1. Proxy-server nədir?
Şəbəkələr dünyasından bir az
Proxy-server əslində kiberməkanda sizin şəxsi gizli agentinizdir. Təsəvvür edin ki, şəbəkədə anonim qalmaq qərarına gəlmisiniz və sizə vasitəçi lazımdır. Bu vasitəçi sizin sorğularınızı serverə göndərəcək, sonra isə cavabları geri qaytararaq sizin əsl IP ünvanınızı gizlədəcək. Proxy-server tam olaraq bunu edir — sorğularınızı anonim şəkildə ötürür və cavabları sizə çatdırır.
Proxy-serverlərin növləri
Koda keçməzdən əvvəl, proxy-serverlərin tiplərini qısa nəzərdən keçirmək yaxşı olardı. Onlar müxtəlif növdə olur və hər biri özünəməxsus tətbiq və xüsusiyyətlərə malikdir:
- HTTP-proxy: HTTP-sorğuların işlənməsi üçün istifadə olunur. Adi veb-sörfinq üçün əladır.
- HTTPS-proxy: Şifrələnmiş HTTPS-sorğuları emal edir. Təhlükəsiz əlaqə üçün vacibdir.
- SOCKS-proxy: Daha universal olub, istənilən trafik növü ilə işləyə bilər. Maksimum çeviklik lazım olduğunda mükəmməl seçimdir.
2. Python-da proxy-serverin qurulması
Python-da proxy-server qurmaq – bu pişikdən klaviaturada oturmamasını rica etməkdən daha asandır. Biz requests
kitabxanasından istifadə edəcəyik, bu kitabxana HTTP və HTTPS bağlantıları üçün proxy parametrlərini asanlıqla təyin etməyə imkan verir.
requests
kitabxanasının qurulması
Əgər hər hansı səbəbdən hələ də requests
kitabxanasını quraşdırmamısınızsa, bu problemi həll etməyin vaxtıdır. Bu şəkildə edirik:
import requests
# HTTP və HTTPS tələbləri üçün proxy-serverləri təyin edirik
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Tələbi proxy-dən keçirərək icra edirik
response = requests.get('http://example.com', proxies=proxies)
# Nəticəni çıxarırıq
print(response.text)
pip install requests
Proxy-serverin istifadəsi nümunəsi
İndi isə görək, tələbləri proxy-server vasitəsilə necə yönləndiririk. Bunun üçün requests
kitabxanasının imkanlarından istifadə edəcəyik.
import requests
# HTTP və HTTPS tələbləri üçün proxy-serverləri təyin edirik
proxies = {
'http': 'http://your.proxy.server:port',
'https': 'https://your.proxy.server:port'
}
# Tələbi proxy-dən keçirərək icra edirik
response = requests.get('http://example.com', proxies=proxies)
# Nəticəni çıxarırıq
print(response.text)
Proxy sətirinin formatına diqqət yetirin. Buradakı vəzifəniz – your.proxy.server:port
hissəsini istifadə etdiyiniz proxy-serverin URL və portu ilə əvəz etməkdir. İnternetdə həm ödənişli, həm də pulsuz proxy-serverlər mövcuddur. Əgər pulsuz proxy-serverlər “Miss Universe” müsabiqəsində iştirak etsəydilər, böyük bir fərqlə birinci olardılar.
3. Proxy-serverlərdən istifadənin üstünlükləri
Məhdudiyyətlərin keçilməsi
Proxy-serverlər bizə bəzi saytların qoyduğu sorğu sürətinə məhdudiyyətləri keçməyə imkan verir. Proxy-serverlərin rotasiyası vasitəsilə IP ünvanlarını müxtəlifləşdirmək və bloklanmaqdan yayınmaq olar. Bu, sanki musiqi pleyerində diski dəyişdirmək kimidir — skriptiniz artıq cansıxıcı olmayacaq.
Anonimliyi qoruma
Proxy-dən istifadə edərək, hərəkətlərinizin anonimliyini qoruya bilərsiniz. Bu, xüsusən də IP-yə görə məhdudiyyətləri keçmək istədiyiniz zaman vacibdir. Əslində, bu sizə uzaq serverin gözündə “maskalanmağa” imkan verir.
4. Proxy-serverlərin rotasiyası
Gəlin indi proxy-serverlərin rotasiyasını təsəvvür edək. Bu, ruletka fırlatmaq kimidir — heç vaxt harada dayanacağını bilmirsən. Bizim halda rotasiya scraping zamanı müxtəlif IP-ünvanlardan istifadə etmək və serverlərin şübhəsindən qaçmaq üçün lazımdır.
import random
# Mövcud proxy-serverlərin siyahısı
proxy_list = [
'http://proxy1:port',
'http://proxy2:port',
'http://proxy3:port'
]
def get_random_proxy():
return random.choice(proxy_list)
proxies = {
'http': get_random_proxy(),
'https': get_random_proxy()
}
# Sorğunu təsadüfi seçilmiş proxy vasitəsilə edirik
response = requests.get('http://example.com', proxies=proxies)
print(response.text)
Kompleks rotasiya
Skriptinizi yaxşılaşdırmaq üçün məntiq əlavə edə bilərsiniz ki, bu məntiq proxy-lərin aktiv olub-olmadığını yoxlayır və əlçatmaz olduqda onları dəyişir. Bu üsulla etibarlı proxy-ünvan dəsti istifadə edəcəksiniz.
GO TO FULL VERSION