Nhận dạng các honeypots
Honeypots là các bẫy thiết lập bởi các chủ website để phát hiện và phong tỏa các bots. Những cái này điển hình
bao gồm các phần tử cái là không nhìn thấy đối với người dùng thường nhưng có thể được tương tác với bởi các
script tự động nếu không được xử lí đúng đắn.
Ví dụ, một dạng phổ biến của honeypot là một trường nhập vào ẩn. Các trường này là không nhìn thấy đối với
người dùng nhưng có mặt trong HTML của page:
<input type=”hidden” id=”custId” name=”custId” value=””>
Trong ví dụ này, input được thiết kế để duy trì rỗng. Một bot được lập trình để ở tại tự động tất cả các trường
trên một page sẽ điền trường ẩn này, bộc lộ bản thân nó đối với cơ chế an ninh của site. Tuy nhiên, một người
dùng hợp pháp sẽ không bao giờ thấy hay tương tác với trường này.
Sử dụng Selenium, bạn có thể tránh rơi vào các bẫy này bằng cách check liệu một phần tử có được hiển thị đối với
người dùng. Như đã đề cập ở trên, phương thức is_displayed() trả về True nếu một phần tử là có thể nhìn thấy
trên trang, và False nếu nó không. Ví dụ, sau đây là làm cách nào bạn có thể sử dụng phương thức này để tương
tác an toàn chỉ với các phần tử nhìn thấy:
from selenium import webdriver
DRIVER_PATH = ‘/path/to/chromedriver’
# Initialize the driver
driver = webdriver.Chrome(executable_path=DRIVER_PATH)# Navigate to the page
driver.get(“https://example.com”)# Find the input element
input_element = driver.find_element_by_id(“custId”)# Check if the element is displayed
if input_element.is_displayed():# The element is visible, safe to interact
input_element.send_keys(“12345”)else:
# The element is likely a honeypot, do not interact
print(“Honeypot detected, skipping interaction”)
# Close the driver
driver.quit()
+ Check tính nhìn thấy: Luôn thẩm định liệu một phần tử là nhìn thấy với is_displayed() trước khi tương tác với nó.
Phương thức này là quan trọng cho phân biệt giữa các trường hợp pháp và các honeypots.
+ Tự động hóa thận trọng: Khi tự động hóa đệ trình form hay nhập dữ liệu, áp dụng các checks để đảm bảo rằng
bạn đang tương tác chỉ với các phần tử có ý định cho tương tác người dùng.
+ Các chính sách site: Nhận thức về các xem xét đạo đức và pháp lí khi scraping các websites. Tránh các honeypots
cũng có nghĩa tôn trọng ý định của quản trị viên website.
Bằng cách tích hợp các check này vào các Selenium scripts, bạn có thể giảm thiểu rủi ro bot của bạn bị gắn cờ
như độc hại và đảm bảo rằng các hoạt động web scraping của bạn duy trì đạo đức và hiệu quả.