Selenyum Python (3). Python Kullanarak Selenyum Tespiti Nasıl Atlanır: Kullanıcı Aracıları ve Arka Planda Yürütme
Python, kullanıcı ajanları ve arka planda çalıştırma kullanarak otomatik tarama tespitini atlatan yöntemleri öğrenin. Web scraping ve otomasyon becerilerinizi geliştirin.
Web kazıması ve tarayıcı otomasyonu, birçok işletme ve geliştirici için ayrılmaz bir hale gelmiştir. Ancak, birçok web sitesi artık otomatikleştirilmiş taramayı tespit eder ve engeller. Bu makale, user agent’ları manipüle ederek ve Selenium’i arka planda çalıştırarak Python kullanarak Selenium tespit edilmesini atlatmanın nasıl yapılacağını keşfedecektir. Başarılı web kazıması sağlamak için ayrıntılı adımlar, araçlar ve en iyi uygulamaları ele alacağız.
Selenium Tespitini Anlamak#
Tespiti atlatmadan önce, nasıl çalıştığını anlayalım. Web siteleri, belirli web driver flagleri ve özelliklerin varlığını kontrol ederek Selenium’u tespit edebilir. Bir site bu flagleri tanımladığında, erişimi engelleyebilir veya yanıltıcı veriler sunabilir. Örneğin, standart bir Chrome tarayıcı kullanarak bir siteyi açtığınızda, site beklendiği gibi cevap verir. Ancak aynı siteyi Selenium kullanarak açtığınızda, website otomasyonu tespit edip engelleyebilir. Bu tespit, Selenium’un web siteleri tarafından aranabilir belirli flagler ayarlaması nedeniyle gerçekleşir.
WebDriver Flaglerini Değiştirme#
Selenium tespitini atlatmak için etkili bir yöntem, WebDriver flaglerini değiştirmektir.
- Firefox Yapılandırması: Firefox yapılandırma sayfasını yazarak açın
about:configAdres çubuğunda. WebDriver ile ilgili bayrağı bulun ve olarak ayarlayın.false. - Kod Uygulaması:
from selenium import webdriver
# Set Firefox preferences
options = webdriver.FirefoxOptions()
options.set_preference("dom.webdriver.enabled", False)
options.set_preference('useAutomationExtension', False)
driver = webdriver.Firefox(options=options)
Bu komut dosyası, WebDriver algılama bayrağını devre dışı bırakarak tarayıcının normal kullanıcı odaklı bir örnek gibi görünmesini sağlar.
Kullanıcı Temsilcileri#
Kullanıcı ajanı, bir tarayıcının kendisini tanıtmak için web sunucusuna gönderdiği bir dizedir. Kullanıcı ajanı dizesini değiştirmek, Selenium isteklerini normal tarayıcı isteklerinden ayırt edilemez hale getirebilir.
Kullanıcı Aracısını Değiştirme Adımları:
- Yaygın bir kullanıcı ajanı dizesi belirleyin: Örnek:
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" - Değişikliği Selenium’da Uygulama:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
driver = webdriver.Chrome(options=options)
Özel bir kullanıcı aracısı ayarlayarak birçok temel algılamayı atlayabiliriz.
Selenium’i Arka Planda Çalıştırma#
Tarayıcıyı arka planda çalıştırmak, tespit edilmekten kaçınmanın bir başka önemli yönüdür. Bunu tarayıcıyı headless modda çalıştırarak gerçekleştirebilirsiniz.
Uygulama:
from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
Headless modda çalıştırmak, hiçbir grafik arayüzünün görüntülenmemesi anlamına gelir; bu, sunucuların üzerinde otomatikleştirilmiş görevleri çalıştırmak için gereklidir.
Tarayıcı Bildirimlerini ve Sesleri Devre Dışı Bırakma#
Otomatikleştirilmiş tarama çoğu zaman beklenmedik açılır pencereler ve bildirimlerin işlenmesini içerir. Bunları devre dışı bırakmak süreci kolaylaştırabilir.
Kod Örneği:
from selenium import webdriver
options = webdriver.ChromeOptions()
prefs = {"profile.default_content_setting_values.notifications": 2}
options.add_experimental_option("prefs", prefs)
options.add_argument("--mute-audio")
driver = webdriver.Chrome(options=options)
Bu komut dosyası bildirimleri devre dışı bırakır ve sesi kapatır, kesintisiz otomasyon sağlar.
Veri Ayrıştırma Örneği#
Rastgele kullanıcı adları oluşturan bir siteden takma adları ayrıştırmanın pratik bir örneğini ele alalım.
Adımlar:
- Siteyi yükleyin ve öğelerle etkileşimde bulunun:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
options = webdriver.ChromeOptions()
options.add_argument("--headless")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
driver = webdriver.Chrome(options=options)
driver.get("https://example.com")
# Locate the username field and extract nicknames
usernames = []
for _ in range(10):
nickname = driver.find_element(By.ID, "nickname").text
usernames.append(nickname)
driver.find_element(By.ID, "generate").click()
print(usernames)
Sonuç#
WebDriver bayraklarını manipüle ederek, user agent’ları değiştirerek, Selenium’i arka planda çalıştırarak ve tarayıcı bildirimlerini devre dışı bırakarak, Selenium tespit edilmesini etkili bir şekilde atlatabilirsiniz. Bu teknikler, kesintisiz ve tespit edilmemiş web kazıması ve otomasyon için gereklidir. Bu yöntemleri uygulamak, otomatikleştirilmiş görevlerinizin kesintisiz verimli kalmasını sağlar. Lütfen web kazıması ve otomasyonu her zaman etik bir şekilde kullanın, web sitesinin hizmet şartlarına veri gizlilik yasalarına saygı gösterin. Daha gelişmiş teknikler ve düzenli güncellemeler için FineProxy.org adresindeki blog sitemizi takip etmeye devam edin. Fikirlerinizi ve geri bildirimlerinizi aşağıdaki yorumlarda paylaşmaktan çekinmeyin. Bu makaleyi beğendiyseniz, kanalımıza abone olmayı ve beğenmek için oy vermeyi unutmayın. Mutlu kazıları!
Bu adımları uygulayarak ve gerektiğinde ayarları düzenleyerek, otomasyon projelerinizin sorunsuz ve tespit edilmemiş bir şekilde çalışmasını sağlayabilirsiniz.