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

Selenium Python (3). Cara Membypass Pengesanan Selenium Menggunakan Python: User Agents dan Eksekusi Latar Belakang

Pelajari cara membypass pengesanan penyemakan otomatis menggunakan Python, user agents, dan eksekusi latar belakang. Tingkatkan kemahiran web scraping dan automasi Anda.

Diterbitkan3 Jun 2024
Masa membaca3 min
PengarangBrandon Perry

Pengikisan web dan automasi browser telah menjadi penting bagi banyak perniagaan dan pembangun. Namun, banyak tapak web kini mengesan dan menyekat penyemakkan otomatis. Artikel ini akan meneroka cara memintas pengesanan Selenium menggunakan Python dengan memanipulasi ejen pengguna dan menjalankan Selenium di latar belakang. Kami akan mendalami langkah terperinci, alatan, dan amalan terbaik untuk memastikan pengikisan web yang berjaya.

Memahami Pengesanan Selenium#

Sebelum kami membypass pengesanan, mari kita fahami cara kerjanya. Laman web boleh mengesan Selenium dengan memeriksa kehadiran bendera dan sifat web driver tertentu. Apabila sebuah laman mengenali bendera ini, ia boleh menyekat akses atau menampilkan data yang mengelirukan. Sebagai contoh, apabila anda membuka laman menggunakan penyemak Chrome standard, ia bertindak balas seperti yang dijangka. Walau bagaimanapun, apabila anda membuka laman yang sama menggunakan Selenium, laman web boleh mengesan automasi dan menyekatnya. Pengesanan ini berlaku kerana Selenium menetapkan bendera khusus yang boleh dicari oleh laman web.

Mengubah Bendera WebDriver#

Untuk membypass pengesanan Selenium, satu kaedah yang berkesan ialah mengubah bendera WebDriver.

  1. Konfigurasi Firefox: Buka halaman konfigurasi Firefox dengan menaip about:config dalam bar alamat. Cari bendera yang berkaitan dengan WebDriver dan tetapkannya kepada false.
  2. Pelaksanaan Kod:
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 melumpuhkan bendera pengesanan WebDriver, menjadikan penyemak imbas muncul sebagai contoh dipacu pengguna biasa.

Ejen Pengguna#

Ejen pengguna ialah rentetan yang dihantar oleh penyemak imbas ke pelayan web untuk mengenal pasti dirinya. Menukar rentetan ejen pengguna boleh menjadikan permintaan Selenium tidak dapat dibezakan daripada permintaan penyemak imbas biasa.

Langkah Menukar Ejen Pengguna:

  1. Kenal pasti rentetan ejen pengguna biasa: 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. Laksanakan Perubahan dalam 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 user agent tersuai, kami boleh membypass banyak pengesanan asas.

Menjalankan Selenium di Latar Belakang#

Menjalankan browser di latar belakang adalah aspek penting lainnya untuk mengelak pengesanan. Ini dapat dicapai dengan menjalankan browser dalam mod tanpa kepala.

Pelaksanaan:

from selenium import webdriver

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

driver = webdriver.Chrome(options=options)

Menjalankan dalam mod tanpa kepala bermakna tiada antara muka grafis dipaparkan, yang penting untuk menjalankan tugas otomatis di pelayan.

Melumpuhkan Pemberitahuan dan Bunyi Penyemak Imbas#

Penyemakkan automatik sering melibatkan pengendalian pop-up dan pemberitahuan yang tidak dijangka. Melumpuhkan ini dapat meranis proses.

Contoh Kod:

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 melumpuhkan pemberitahuan dan meredam audio, memastikan automasi tidak terganggu.

Contoh Penghuraian Data#

Mari kita pertimbangkan contoh praktikal penghuraian nama panggilan daripada tapak yang menjana nama pengguna rawak.

Langkah-langkah:

  1. Muatkan tapak 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 bendera WebDriver, menukar ejen pengguna, menjalankan Selenium di latar belakang, dan melumpuhkan pemberitahuan browser, anda dapat memintas pengesanan Selenium dengan berkesan. Teknik ini penting untuk pengikisan web dan automasi yang lancar dan tidak dikesan. Melaksanakan kaedah ini memastikan bahawa tugas otomatis anda tetap tidak terputus dan cekap. Ingat sentiasa menggunakan pengikisan web dan automasi dengan beretika, menghormati terma perkhidmatan tapak web dan undang-undang privasi data. Untuk teknik lebih lanjut dan kemas kini tetap, terus pantau blog kami di FineProxy.org. Sila berkongsi idea dan maklum balas anda dalam ulasan di bawah. Jika anda suka artikel ini, jangan lupa langgan saluran kami dan tinggalkan suka. Senang mengikis!

Dengan melaksanakan langkah-langkah ini dan melaraskan tetapan seperti yang diperlukan, anda boleh memastikan projek automasi anda berjalan lancar dan tidak dapat dikesan.