Pengikisan web dan otomatisasi browser telah menjadi hal yang penting integral untuk banyak bisnis dan pengembang. Namun, banyak situs web kini mendeteksi dan memblokir penjelajahan otomatis. Artikel ini akan membahas cara mem-bypass Selenium deteksi menggunakan Python dengan memanipulasi agen pengguna dan menjalankan Selenium di latar belakang. Kami akan mendalami langkah-langkah, alat, dan praktik terbaik secara mendetail untuk memastikan keberhasilan web scraping.

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

Skrip ini menonaktifkan tanda deteksi WebDriver, membuat browser muncul sebagai instance reguler yang digerakkan oleh pengguna.

Agen Pengguna

Agen pengguna adalah string yang dikirimkan browser ke server web untuk mengidentifikasi dirinya. Mengubah string agen pengguna dapat membuat permintaan Selenium tidak dapat dibedakan dari permintaan browser biasa.

Langkah-langkah Mengubah Agen Pengguna:

  1. Identifikasi string agen pengguna 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. Menerapkan Perubahan Selenium:
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 tanpa kepala.

Penerapan:

from selenium import webdriver

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

driver = webdriver.Chrome(options=options)

Berjalan dalam mode tanpa kepala berarti tidak ada antarmuka grafis yang ditampilkan, yang penting untuk menjalankan tugas otomatis di server.

Menonaktifkan Notifikasi dan Suara Browser

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

Contoh Kode:

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 otomatisasi tidak terganggu.

Contoh Parsing Data

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

Langkah:

  1. Muat situs dan berinteraksi dengan elemen:
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 tanda WebDriver, mengubah agen pengguna, menjalankan Selenium di latar belakang, dan menonaktifkan pemberitahuan browser, Anda dapat secara efektif melewati deteksi Selenium. Teknik-teknik ini penting untuk pengikisan dan otomatisasi web yang lancar dan tidak terdeteksi. Menerapkan metode ini memastikan tugas otomatis Anda tetap tidak terganggu dan efisien. Ingatlah untuk selalu menggunakan web scraping dan otomatisasi secara etis, dengan menghormati persyaratan layanan situs web dan undang-undang privasi data. Untuk teknik lebih lanjut dan pembaruan rutin, pantau terus blog kami di Proksi Baik.org. Jangan ragu untuk membagikan ide dan masukan Anda di komentar di bawah. Jika Anda menyukai artikel ini, jangan lupa berlangganan saluran kami dan tinggalkan suka. Selamat menggores!

Dengan menerapkan langkah-langkah ini dan menyesuaikan pengaturan seperlunya, Anda dapat memastikan proyek otomatisasi Anda berjalan lancar dan tidak terdeteksi.

Komentar (0)

Belum ada komentar di sini, Anda bisa menjadi yang pertama!

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *


Pilih dan Beli Proxy

Proksi Pusat Data

Memutar Proxy

Proksi UDP

Dipercaya Oleh 10.000+ Pelanggan di Seluruh Dunia

Pelanggan Proksi
Pelanggan Proksi
Pelanggan Proksi flowch.ai
Pelanggan Proksi
Pelanggan Proksi
Pelanggan Proksi