Quét web và tự động hóa trình duyệt đã trở thành một phần không thể thiếu đối với nhiều doanh nghiệp và nhà phát triển. Tuy nhiên, hiện nay nhiều trang web phát hiện và chặn tính năng duyệt tự động. Bài viết này sẽ khám phá cách vượt qua tính năng phát hiện Selenium bằng Python bằng cách thao tác tác nhân người dùng và chạy Selenium ở chế độ nền. Chúng tôi sẽ đi sâu vào các bước, công cụ và phương pháp hay nhất chi tiết để đảm bảo việc quét web thành công.

Tìm hiểu về phát hiện Selenium

Trước khi bỏ qua tính năng phát hiện, hãy hiểu cách hoạt động của nó. Các trang web có thể phát hiện Selenium bằng cách kiểm tra sự hiện diện của một số cờ và thuộc tính trình điều khiển web nhất định. Khi một trang web xác định được những dấu hiệu này, nó có thể chặn quyền truy cập hoặc hiển thị dữ liệu sai lệch. Ví dụ: khi bạn mở một trang web bằng trình duyệt Chrome tiêu chuẩn, trang web đó sẽ phản hồi như mong đợi. Tuy nhiên, khi bạn mở cùng một trang web bằng Selenium, trang web đó có thể phát hiện quá trình tự động hóa và chặn nó. Phát hiện này xảy ra do Selenium đặt các cờ cụ thể mà các trang web có thể tìm kiếm.

Thay đổi cờ WebDriver

Để bỏ qua việc phát hiện Selenium, một phương pháp hiệu quả là sửa đổi cờ WebDriver.

  1. Cấu hình Firefox: Mở trang cấu hình Firefox bằng cách gõ about:config trong thanh địa chỉ. Xác định vị trí cờ liên quan đến WebDriver và đặt nó thành false.
  2. Triển khai mã:
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)

Tập lệnh này vô hiệu hóa cờ phát hiện WebDriver, làm cho trình duyệt xuất hiện dưới dạng phiên bản do người dùng điều khiển thông thường.

Tác nhân người dùng

Tác nhân người dùng là một chuỗi mà trình duyệt gửi đến máy chủ web để nhận dạng chính nó. Việc thay đổi chuỗi tác nhân người dùng có thể khiến các yêu cầu Selenium không thể phân biệt được với các yêu cầu trình duyệt thông thường.

Các bước để thay đổi tác nhân người dùng:

  1. Xác định chuỗi tác nhân người dùng phổ biến: Ví dụ: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
  2. Thực hiện thay đổi trong 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)

Bằng cách đặt tác nhân người dùng tùy chỉnh, chúng tôi có thể bỏ qua nhiều phát hiện cơ bản.

Chạy Selenium ở chế độ nền

Chạy trình duyệt ở chế độ nền là một khía cạnh quan trọng khác để tránh bị phát hiện. Điều này có thể đạt được bằng cách chạy trình duyệt ở chế độ không đầu.

Thực hiện:

from selenium import webdriver

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

driver = webdriver.Chrome(options=options)

Chạy ở chế độ không đầu có nghĩa là không hiển thị giao diện đồ họa, điều này rất cần thiết để chạy các tác vụ tự động trên máy chủ.

Tắt thông báo và âm thanh của trình duyệt

Duyệt tự động thường liên quan đến việc xử lý các thông báo và cửa sổ bật lên không mong muốn. Vô hiệu hóa những thứ này có thể hợp lý hóa quá trình.

Ví dụ về mã:

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)

Tập lệnh này tắt thông báo và tắt âm thanh, đảm bảo quá trình tự động hóa không bị gián đoạn.

Ví dụ phân tích dữ liệu

Hãy xem xét một ví dụ thực tế về phân tích biệt hiệu từ một trang web tạo tên người dùng ngẫu nhiên.

bước:

  1. Tải trang web và tương tác với các phần tử:
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)

Phần kết luận

Bằng cách thao tác với cờ WebDriver, thay đổi tác nhân người dùng, chạy Selenium ở chế độ nền và tắt thông báo trình duyệt, bạn có thể bỏ qua tính năng phát hiện Selenium một cách hiệu quả. Những kỹ thuật này rất cần thiết để tự động hóa và quét web liền mạch và không bị phát hiện. Việc triển khai các phương pháp này đảm bảo rằng các tác vụ tự động của bạn không bị gián đoạn và hiệu quả. Hãy nhớ luôn sử dụng tính năng quét web và tự động hóa một cách có đạo đức, tôn trọng các điều khoản dịch vụ của trang web và luật bảo mật dữ liệu. Để biết thêm các kỹ thuật nâng cao và cập nhật thường xuyên, hãy theo dõi blog của chúng tôi trên FineProxy.org. Hãy chia sẻ ý tưởng và phản hồi của bạn trong phần bình luận bên dưới. Nếu bạn thích bài viết này, đừng quên đăng ký kênh của chúng tôi và để lại một lượt thích. Chúc mừng cạo!

Bằng cách thực hiện các bước này và điều chỉnh cài đặt nếu cần, bạn có thể đảm bảo các dự án tự động hóa của mình chạy trơn tru và không bị phát hiện.

Bình luận (0)

Chưa có bình luận nào ở đây, bạn có thể là người đầu tiên!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *


Chọn và mua proxy

Proxy trung tâm dữ liệu

Proxy luân phiên

Proxy UDP

Được tin cậy bởi hơn 10000 khách hàng trên toàn thế giới

Khách hàng ủy quyền
Khách hàng ủy quyền
Khách hàng proxy flowch.ai
Khách hàng ủy quyền
Khách hàng ủy quyền
Khách hàng ủy quyền