# Selenium Python (6). Cara Memintas Pengesanan Parser dengan Selenium Stealth

Dalam dunia web scraping, automasi sering kali dihalang oleh mekanisme anti-bot yang mengesan dan menyekat akses automatik kepada data. Walau bagaimanapun, dengan

- Pengarang: [Brandon Perry](https://fineproxy.org/ms/brandon-perry/)
- Diterbitkan: 2024-06-06T11:30:05.000Z
- Dikemas kini: 2024-05-27T11:40:33.000Z
- URL kanonik: https://fineproxy.org/ms/selenium-python-6-how-to-bypass-parser-detection-with-selenium-stealth/

Dalam bidang web scraping, automasi sering kali dapat digagalkan oleh mekanisme anti-bot yang mengesan dan menyekat akses otomatis ke data. Bagaimanapun, dengan alat dan teknik yang tepat, adalah mungkin untuk melintasi pengesanan ini dan berjaya mengikis data yang anda perlukan. Dalam artikel ini, kami akan meneroka cara menggunakan Selenium Stealth untuk menjadikan usaha scraping anda lebih tersembunyi dan berkesan.

## Pengenalan kepada Selenium dan Cabarannya

Selenium ialah alat popular untuk mengautomasikan penyemak imbas web, membolehkan pengguna menavigasi laman web secara pemrograman dan berinteraksi dengan elemen mereka. Walau bagaimanapun, banyak tapak web mempunyai langkah untuk mengesan dan menyekat penyemakan imbas automatik, mengiktiraf corak khusus untuk Selenium. Ini boleh mengakibatkan akses disekat atau data yang salah dikembalikan.

**Perkara utama:**

-   **Pengesanan Automasi:** Laman web boleh mengesan Selenium dan menyekat akses.
-   **Isu Biasa:** Mengembalikan data yang salah atau menyekat pengguna.

## Apakah itu Selenium Stealth?

Selenium Stealth ialah perpustakaan yang direka untuk menjadikan penyemakan imbas automatik kurang dapat dikesan dengan meniru gelagat penyemakan imbas seperti manusia. Ia mengubah suai Selenium WebDriver untuk kelihatan lebih seperti pelayar pengguna biasa, sekali gus memintas banyak langkah anti-bot.

**Ciri-ciri Selenium Stealth:**

-   Meniru gelagat pelayaran seperti manusia.
-   Melintasi mekanisme pengesanan Selenium yang biasa.

## Menyediakan Selenium Stealth

Untuk mula menggunakan Selenium Stealth, anda perlu memasang kedua-dua Selenium dan perpustakaan Selenium Stealth. Di bawah ialah langkah-langkah untuk menyediakan dan mengintegrasikan Selenium Stealth dengan skrip Selenium anda.

**Langkah-langkah Pemasangan:**

Pasang Selenium:

```bash
pip install selenium
```

Pasang Selenium Stealth:

```bash
pip install selenium-stealth
```

## Contoh: Pengikisan dengan Selenium Stealth

Berikut ialah contoh langkah demi langkah tentang cara menyediakan dan menggunakan Selenium Stealth untuk mengikis data daripada tapak web sambil memintas pengesanan.

**Langkah 1: Import Pustaka**

```python
from selenium import webdriver
from selenium_stealth import stealth
```

**Langkah 2: Sediakan WebDriver dengan Stealth**

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

stealth(driver,
        languages=["en-US", "en"],
        vendor="Google Inc.",
        platform="Win32",
        webgl_vendor="Intel Inc.",
        renderer="Intel Iris OpenGL Engine",
        fix_hairline=True)

driver.get('https://example.com')
```

**Langkah 3: Laksanakan Tugas Mengikis Anda**

```python
# Example: Finding elements and extracting data
element = driver.find_element_by_class_name('example-class')
data = element.text
print(data)
```

## Membenamkan Jadual untuk Kejelasan

Untuk pemahaman yang lebih baik, berikut adalah jadual yang meringkaskan langkah-langkah dan tujuan mereka:

| Langkah | Penerangan |
| --- | --- |
| 1 | Import pustaka Selenium dan Selenium Stealth. |
| 2 | Sediakan WebDriver dan gunakan pengubahsuaian stealth. |
| 3 | Lakukan tugas web scraping tanpa dikesan. |

## Teknik Lanjutan dengan Selenium Stealth

Untuk meningkatkan lagi usaha scraping anda, pertimbangkan untuk melaksanakan teknik-teknik maju berikut:

**Mengendalikan Kandungan Dinamik:**

-   Gunakan WebDriverWait untuk mengendalikan elemen yang dimuatkan secara dinamik.
-   Contoh:

```python
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

element = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.ID, "dynamicElement"))
)
```

**Proksi Berputar:**

-   Putarkan proxy untuk mengelakkan larangan IP.
-   Contoh:

```python
options.add_argument('--proxy-server=http://your.proxy.server:port')
```

## Ralat Biasa dan Penyelesaian Masalah

Walaupun dengan Selenium Stealth, anda mungkin menghadapi beberapa masalah. Berikut ialah beberapa ralat biasa dan cara menyelesaikannya:

-   **DriverNotFoundError:** Pastikan WebDriver yang betul dipasang dan halamannya ditetapkan dengan betul.
-   **TimeoutException:** Gunakan WebDriverWait untuk mengendalikan elemen dinamik dengan betul.

## Kesimpulan

Dengan mengintegrasikan Selenium Stealth ke dalam skrip Selenium anda, anda dapat mengurangkan dengan ketara peluang pengesanan dan berjaya mengikis data dari laman web yang menerapkan langkah-langkah anti-bot. Pendekatan ini membantu dalam mengekalkan akses dan mendapatkan data yang tepat, menjadikan usaha web scraping anda lebih cekap dan boleh dipercayai.

Ingat, sentiasa pastikan bahawa aktiviti scraping anda mematuhi syarat perkhidmatan laman web dan garis panduan undang-undang.
