# Selenium Python (3). Cara Bypass Deteksi Selenium Menggunakan Python: User Agent dan Eksekusi Background

Pelajari cara bypass deteksi browsing otomatis menggunakan Python, user agent, dan eksekusi background. Tingkatkan keterampilan web scraping dan automation Anda.

- Penulis: [Brandon Perry](https://fineproxy.org/id/brandon-perry/)
- Diterbitkan: 2024-06-03T11:05:26.000Z
- Diperbarui: 2024-05-27T11:43:25.000Z
- URL kanonis: https://fineproxy.org/id/selenium-python-3-how-to-bypass-selenium-detection-using-python-user-agents-and-background-execution/

Web scraping dan browser automation telah menjadi integral bagi banyak bisnis dan developer. Namun, banyak website sekarang mendeteksi dan memblokir browsing otomatis. Artikel ini akan mengeksplorasi cara bypass deteksi Selenium menggunakan Python dengan memanipulasi user agents dan menjalankan Selenium di background. Kami akan mendalami langkah-langkah detail, tools, dan best practices untuk memastikan web scraping yang berhasil.

## Memahami Deteksi Selenium

Sebelum kita mengabaikan deteksi, mari kita pahami cara kerjanya. Situs web dapat mendeteksi Selenium dengan memeriksa keberadaan tanda dan properti driver web tertentu. Ketika sebuah situs mengidentifikasi tanda-tanda ini, situs tersebut dapat memblokir akses atau menyajikan data yang menyesatkan. Misalnya, saat Anda membuka situs menggunakan browser Chrome standar, situs akan merespons seperti yang diharapkan. Namun, ketika Anda membuka situs yang sama menggunakan Selenium, situs web tersebut dapat mendeteksi otomatisasi dan memblokirnya. Deteksi ini terjadi karena Selenium menetapkan tanda spesifik yang dapat dicari situs web.

## Mengubah Bendera WebDriver

Untuk melewati deteksi Selenium, salah satu metode efektif adalah dengan memodifikasi flag WebDriver.

1.  **Konfigurasi Firefox**: Buka halaman konfigurasi Firefox dengan mengetik `about:config` di bilah alamat. Temukan bendera yang terkait dengan WebDriver dan setel ke `false`.
2.  **Implementasi Kode**:

```python
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)
```

Script ini menonaktifkan flag deteksi WebDriver, membuat browser terlihat seperti instance yang dijalankan pengguna biasa.

## Agen Pengguna

User agent adalah string yang dikirim browser ke web server untuk mengidentifikasi dirinya. Mengubah string user agent dapat membuat request Selenium tidak terlihat berbeda dari request browser biasa.

**Langkah-Langkah untuk Mengubah User Agent**:

1.  **Identifikasi string user agent yang umum**: Contoh: `"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"`
2.  **Implementasikan Perubahan di Selenium**:

```python
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)
```

Dengan menetapkan agen pengguna khusus, kita dapat melewati banyak deteksi dasar.

## Menjalankan Selenium di Latar Belakang

Menjalankan browser di latar belakang adalah aspek penting lainnya untuk menghindari deteksi. Hal ini dapat dicapai dengan menjalankan browser dalam mode headless.

**Implementasi**:

```python
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")

driver = webdriver.Chrome(options=options)
```

Menjalankan dalam mode headless berarti tidak ada antarmuka grafis yang ditampilkan, yang penting untuk menjalankan tugas otomatis di server.

## Menonaktifkan Notifikasi dan Suara Browser

Penelusuran otomatis sering kali melibatkan penanganan pop-up dan notifikasi yang tidak terduga. Menonaktifkan ini dapat menyederhanakan prosesnya.

**Contoh Kode**:

```python
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)
```

Skrip ini menonaktifkan notifikasi dan membisukan audio, memastikan otomasi yang tidak terganggu.

## Contoh Parsing Data

Mari kita perhatikan contoh praktis penguraian nama panggilan dari situs yang menghasilkan nama pengguna acak.

**Langkah-langkah**:

1.  **Muat situs dan berinteraksi dengan elemen**:

```python
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)
```

## Kesimpulan

Dengan memanipulasi WebDriver flags, mengubah user agents, menjalankan Selenium di background, dan menonaktifkan notifikasi browser, Anda dapat secara efektif bypass deteksi Selenium. Teknik-teknik ini sangat penting untuk web scraping dan automation yang seamless dan undetected. Menerapkan metode-metode ini memastikan bahwa tugas-tugas otomatis Anda tetap tanpa gangguan dan efisien. Ingat selalu untuk menggunakan web scraping dan automation secara etis, menghormati terms of service website dan undang-undang privasi data. Untuk teknik-teknik lebih lanjut dan update reguler, tetap ikuti blog kami di FineProxy.org. Jangan ragu untuk berbagi ide dan feedback Anda di komentar di bawah. Jika Anda menyukai artikel ini, jangan lupa subscribe ke channel kami dan berikan like. Selamat scraping!

Dengan menerapkan langkah-langkah ini dan menyesuaikan pengaturan sesuai kebutuhan, Anda dapat memastikan proyek otomasi Anda berjalan dengan lancar dan tidak terdeteksi.
