In this Article
Selenium tek başına web otomasyonu için harikadır; ancak onu bir proxy ile birlikte kullanmak gizliliğinizi korur, kararlı bir bağlantı sağlar ve içeriklerin keyfini kesintisiz çıkarmanıza olanak tanır. Basitçe söylemek gerekirse, Jason Huggins tarafından geliştirilen, web uygulamalarını otomatikleştirmek veya test etmek için kullanılan açık kaynaklı bir araçtır. Selenium IDE, Grid, Standalone Server ve WebDriver gibi modüller içerir.
Bu rehberde, web scraping görevleri için Python’da Selenium’u bir proxy ile yapılandırmanın temel adımlarını ele alacağız.
Başlangıç
Öncelikle Python ve pip’in (Python Paket Yöneticisi) kurulu olduğundan emin olun. Kurulu değilse Python’u resmî sitesinden indirin, indirdiğiniz .pkg dosyasını açın ve talimatları izleyin. Temel ilk adımlara bakalım:
1. Terminal’i veya Komut İstemi’ni açın. Mac kullanıyorsanız Dock’taki Launchpad simgesine tıklayın, arama alanına Terminal yazın ve ardından Terminal’e tıklayın. Windows kullanıyorsanız Çalıştır penceresine cmd yazın. Bu kısayol Komut İstemi’ni veya PowerShell terminalini açacaktır.
2. Terminalinize şunu yazın:
python --version
Sürümünüz Python 3 ise python’dan sonra 3 eklemeniz yeterlidir. Bu, diğer komutlar için de geçerli olabilir:
python3 --version
pip genellikle Python 3.4+ ile otomatik olarak kurulur. Ancak pip kurulu olup olmadığını yazarak kontrol etmek daha iyidir:
pip --version
pip3 --version
3. pip kullanarak Selenium paketini kurun:
pip install selenium
Python 3 kullanıyorsanız pip3 Python 3 için kurulduğundan emin olmak üzere kullanmayı deneyin:
pip3 install selenium
4. Kurulumun tamamlandığını kontrol edin.
Kurulumdan sonra aşağıdaki komutu çalıştırarak Selenium’un kurulduğunu doğrulayabilirsiniz:
pip show selenium
Selenium için WebDriver Kullanımı
Selenium’un Chrome, Firefox ve diğerleri gibi tarayıcılarla etkileşim kurabilmesi için bir web sürücüsüne ihtiyacı vardır. Uygun sürücüyü indirmeniz ve sisteminizin PATH’inde bulunduğundan emin olmanız gerekir. Çoğu otomasyon projesinde tercih edilen tarayıcı olan Chrome ile çalışacağız.
1. Resmî ChromeDriver indirme sayfasına gidin:
https://developer.chrome.com/docs/chromedriver/downloads
2. Chrome sürümünüzle eşleşen bağlantıyı bulun ve macOS için ChromeDriver’ı indirin.
İndirdiğiniz dosya zip. biçiminde olacaktır. Çıkarmak için çift tıklayın; ardından chromedriver yürütülebilir dosyasını elde edeceksiniz.
Kolay erişim için chromedriver dosyasını sisteminizin PATH’ine dahil edilmiş bir dizine taşımalısınız. Yaygın dizinler arasında /usr/local/bin veya /usr/bin bulunur. Şu komutu kullanın:
sudo mv ~/Downloads/chromedriver /usr/local/bin/
***”Böyle bir dosya veya dizin yok” hatasını görürseniz bu genellikle komutunuzdaki dosya yolunun yanlış olduğu veya dosyanın belirtilen konumda bulunmadığı anlamına gelir. chromedriver dosyasının bulunduğu dizinde olduğunuzu ve dosya adında uzantı ya da yazım hatası olmadığını tekrar kontrol edin.
Dosyaları mv komutuyla sudo kullanarak /usr/local/bin gibi dizinlere taşıdığınızda, macOS sizden parolanızı girmenizi ister. Bu, kullanıcı hesabınızın parolasıdır. Parolanızı yazın ve Enter’a basın. Yazarken parolanızın ekranda görünmeyeceğini unutmayın (hiçbir karakter veya simge görünmez).
ChromeDriver’ın doğru kurulduğunu kontrol etmek için terminale aşağıdaki komutu yazın:
chromedriver --version/
Temel bir Python betiği oluşturma
Sonraki adımda, herhangi bir metin düzenleyici indirin (bizim örneğimizde VS Code) veya IDE kullanarak yeni bir dosya oluşturun: selenium_test.py.
Temel bir Python betiği oluşturmak için webdriver-manager modülünü kurmamız gerekir.
- Paketi pip kullanarak kurabiliriz. Terminalinizde aşağıdaki komutu çalıştırın:
pip install webdriver-manager/
pip install selenium webdriver-manager/
Yukarıdaki komutu çalıştırdıktan sonra betiğiniz beklendiği gibi çalışmalıdır:
# pip install selenium webdriver-manager
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
# set Chrome options to run in headless mode
options = Options()
options.add_argument("--headless=new")
# initialize Chrome driver
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the HTML of the target webpage
print(driver.page_source)
# release the resources and close the browser
driver.quit()/
Şu sonucu göreceksiniz:
Selenium’da ücretsiz proxy yapılandırma
Bu bölümde Python kullanarak bir Selenium proxy’sini nasıl yapılandıracağınızı ve ücretsiz proxy’leri nasıl deneyeceğinizi öğreneceksiniz. Şu web sitesini ziyaret edin: https://free-proxy-list.net/ ve testiniz için ücretsiz bir proxy seçin. Betikte proxy adresini ve bağlantı noktasını tanımlamanız gerekir. Örneğin, şu ücretsiz proxy’yi seçelim:
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# define the proxy address and port
proxy = "194.5.25.34:443"
# set Chrome options to run in headless mode using a proxy
options = Options()
options.add_argument("--headless=new")
options.add_argument(f"--proxy-server={proxy}")
# initialize Chrome driver
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the body content of the target webpage
print(driver.find_element(By.TAG_NAME, "body").text)
# release the resources and close the browser
driver.quit()/
Terminalde aşağıdaki yanıtı alacaksınız:
{
“origin”: “194.5.25.34:443”
}
Bu, Selenium’un proxy sunucusunu kullanarak sayfalara gittiği anlamına gelir. Ancak ücretsiz proxy’ler yavaş olabileceği ve verilerinizi satabileceği için dikkatli olun.
Selenium Wire
Selenium Wire, ağ trafiğini yakalamanıza ve analiz etmenize olanak veren güçlü bir Selenium uzantısıdır. HTTP isteklerini ve yanıtlarını inceleyerek bir web uygulamasının sunucusuyla nasıl etkileşim kurduğunu daha iyi anlayabilirsiniz. Chrome sürücüsü kullanıcı adını ve parolayı otomatik olarak işlemez; bu nedenle Selenium Wire gibi üçüncü taraf bir eklentiye ihtiyacınız vardır.
Selenium Wire’ı kurmak için terminalinizde şu komutu çalıştırın:
pip install blinker==1.7.0 selenium-wire/
pip3 install blinker==1.7.0 selenium-wire/
Selenium’da DataImpulse Proxy’leri
Sonunda DataImpulse proxy’lerini kullanma zamanı. Her şey kurulduğuna göre proxy kimlik doğrulamasına devam etmeye hazırız. Bu adım için seçtiğiniz planın DataImpulse kontrol panelindeki bölümde kayıtlı kullanıcı adınıza, parolanıza, adresinize ve bağlantı noktanıza ihtiyacınız olacak. Residential proxy kullanacağız.
Betiğe geçelim:
from seleniumwire import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
# configure the proxy
proxy_username = ""
proxy_password = ""
proxy_address = "gw.dataimpulse.com"
proxy_port = "823"
# formulate the proxy url with authentication
proxy_url = f"http://{proxy_username}:{proxy_password}@{proxy_address}:{proxy_port}"
# set selenium-wire options to use the proxy
seleniumwire_options = {
"proxy": {
"http": proxy_url,
"https": proxy_url
},
}
# set Chrome options to run in headless mode
options = Options()
options.add_argument("--headless=new")
# initialize the Chrome driver with service, selenium-wire options, and chrome options
driver = webdriver.Chrome(
service=Service(ChromeDriverManager().install()),
seleniumwire_options=seleniumwire_options,
options=options
)
# navigate to the target webpage
driver.get("https://httpbin.io/ip")
# print the body content of the target webpage
print(driver.find_element(By.TAG_NAME, "body").text)
# release the resources and close the browser
driver.quit()/
VS Code’da şu şekilde görünecektir:
Sonuç olarak, “origin” değerinizle birlikte bir yanıt alacaksınız. Bu, kimlik doğrulamanın başarıyla tamamlandığı anlamına gelir.
İpuçları
- Yalnızca resmî web sitelerini ziyaret edin – Gerekli tüm programları güvenli resmî sitelerden indirin.
- Uyumluluğu doğrulayın – Selenium, ChromeDriver ve tarayıcınızın sürümlerinin birbiriyle uyumlu olduğunu tekrar kontrol edin.
- Düzenli olarak güncelleyin – En yeni özelliklerden yararlanmak için Selenium, ChromeDriver ve diğer araçları düzenli olarak kontrol edin.
- Giriş bilgilerini güvenle yönetin – Kimlik doğrulama ayrıntılarınızı güvenli biçimde koruyun ve yönetin.
- Sanal ortamları kullanın – Bağımlılıklarınızı düzenli tutmak ve paket çakışmalarını önlemek için bir sanal ortam oluşturun.
- Hata yönetimi – Proxy kullanırken veya web ögeleriyle çalışırken oluşabilecek sorunlarla başa çıkmak için betiklerinize hata yönetimi mekanizmaları ekleyin.
Sonuç
Selenium’u yapılandırmayı düşünüyorsanız mutlaka deneyin. Selenium ile bir proxy kullanmak, motorunuza ekstra bir vites eklemek gibidir; size daha fazla güç ve kontrol sağlar. Tüm paketleri ilk denemede başarıyla dahil etmek için talimatlarımızı ve ipuçlarımızı izleyin. Daha yüksek hız, güvenlik ve kararlılık için ücretsiz olanlar yerine güvenilir proxy’leri seçmenin daha iyi olduğunu unutmayın.









