Tôi đã thử nghiệm Selenium với Chromedriver và tôi nhận thấy rằng một số trang có thể phát hiện ra rằng bạn đang sử dụng Selenium mặc dù không có tự động hóa nào cả. Ngay cả khi tôi chỉ duyệt thủ công chỉ bằng cách sử dụng chrome thông qua Selenium và Xephyr, tôi vẫn thường nhận được một trang nói rằng hoạt động đáng ngờ đã được phát hiện. Tôi đã kiểm tra tác nhân người dùng và dấu vân tay trình duyệt của tôi và tất cả chúng đều giống hệt với trình duyệt chrome thông thường.
Khi tôi duyệt đến các trang web này trong chrome bình thường, mọi thứ đều hoạt động tốt, nhưng thời điểm tôi sử dụng Selenium tôi đã phát hiện ra.
Về lý thuyết, chromedriver và chrome sẽ trông giống hệt như bất kỳ máy chủ web nào, nhưng bằng cách nào đó họ có thể phát hiện ra nó.
Nếu bạn muốn một số testcode hãy thử điều này:
from pyvirtualdisplay import Display
from selenium import webdriver
display = Display(visible=1, size=(1600, 902))
display.start()
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--disable-extensions')
chrome_options.add_argument('--profile-directory=Default')
chrome_options.add_argument("--incognito")
chrome_options.add_argument("--disable-plugins-discovery");
chrome_options.add_argument("--start-maximized")
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.delete_all_cookies()
driver.set_window_size(800,800)
driver.set_window_position(0,0)
print 'arguments done'
driver.get('http://stubhub.com')
Nếu bạn duyệt qua stubhub, bạn sẽ được chuyển hướng và 'bị chặn' trong một hoặc hai yêu cầu. Tôi đã nghiên cứu vấn đề này và tôi không thể hiểu làm thế nào họ có thể nói rằng người dùng đang sử dụng Selenium.
Họ làm nó như thế nào?
CẬP NHẬT EDIT:
Tôi đã cài đặt plugin Selenium IDE trong Firefox và tôi đã bị cấm khi tôi truy cập stubhub.com trong trình duyệt firefox bình thường chỉ với plugin bổ sung.
BIÊN TẬP:
Khi tôi sử dụng Fiddler để xem các yêu cầu HTTP được gửi qua lại tôi đã nhận thấy rằng các yêu cầu 'trình duyệt giả mạo' thường có 'không có bộ đệm' trong tiêu đề phản hồi.
BIÊN TẬP:
kết quả như thế này Có cách nào để phát hiện ra rằng tôi đang ở trang Selenium WebSearch từ Javascript đề xuất rằng không nên có cách nào để phát hiện khi bạn đang sử dụng webdo. Nhưng bằng chứng này cho thấy khác.
BIÊN TẬP:
Trang web tải một dấu vân tay lên máy chủ của họ, nhưng tôi đã kiểm tra và dấu vân tay của selen giống hệt với dấu vân tay khi sử dụng chrome.
BIÊN TẬP:
Đây là một trong những tải trọng vân tay mà họ gửi đến máy chủ của họ
{"appName":"Netscape","platform":"Linuxx86_64","cookies":1,"syslang":"en-US","userlang":"en-US","cpu":"","productSub":"20030107","setTimeout":1,"setInterval":1,"plugins":{"0":"ChromePDFViewer","1":"ShockwaveFlash","2":"WidevineContentDecryptionModule","3":"NativeClient","4":"ChromePDFViewer"},"mimeTypes":{"0":"application/pdf","1":"ShockwaveFlashapplication/x-shockwave-flash","2":"FutureSplashPlayerapplication/futuresplash","3":"WidevineContentDecryptionModuleapplication/x-ppapi-widevine-cdm","4":"NativeClientExecutableapplication/x-nacl","5":"PortableNativeClientExecutableapplication/x-pnacl","6":"PortableDocumentFormatapplication/x-google-chrome-pdf"},"screen":{"width":1600,"height":900,"colorDepth":24},"fonts":{"0":"monospace","1":"DejaVuSerif","2":"Georgia","3":"DejaVuSans","4":"TrebuchetMS","5":"Verdana","6":"AndaleMono","7":"DejaVuSansMono","8":"LiberationMono","9":"NimbusMonoL","10":"CourierNew","11":"Courier"}}
Nó giống hệt nhau trong selen và chrome
BIÊN TẬP:
VPN hoạt động cho một lần sử dụng nhưng được phát hiện sau khi tôi tải trang đầu tiên. Rõ ràng một số javascript đang được chạy để phát hiện Selenium.
distill
công nghệ phát hiện bot và cung cấp nội dung sử dụng akamaitechnologies.com
CDN từ khác nhau ip ví dụ 95.100.59.245
, 104.70.243.66
,23.202.161.241