BAHARU! |Satu panggilan API, data bersih diterima. Pengikis tidak diperlukan.Dapatkan 10,000 token percuma →

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

Diterbitkan6 Jun 2024
Masa membaca3 min
PengarangBrandon Perry

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:

pip install selenium

Pasang Selenium Stealth:

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

from selenium import webdriver
from selenium_stealth import stealth

Langkah 2: Sediakan WebDriver dengan Stealth

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

# 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:

LangkahPenerangan
1Import pustaka Selenium dan Selenium Stealth.
2Sediakan WebDriver dan gunakan pengubahsuaian stealth.
3Lakukan 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:
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:
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.