ฉันได้ทดลองซีลีเนียมด้วย Chromedriver แล้วและพบว่าบางหน้าสามารถตรวจจับได้ว่าคุณกำลังใช้ซีลีเนียมแม้ว่าจะไม่มีระบบอัตโนมัติเลย แม้กระทั่งตอนที่ฉันค้นหาด้วยตนเองเพียงแค่ใช้โครเมี่ยมผ่าน Selenium และ Xephyr ฉันมักจะได้รับหน้าที่แจ้งว่ามีการตรวจพบกิจกรรมที่น่าสงสัย ฉันได้ตรวจสอบตัวแทนผู้ใช้ของฉันและลายนิ้วมือเบราว์เซอร์ของฉันและพวกเขาทั้งหมดเหมือนกับเบราว์เซอร์โครมทั่วไป
เมื่อฉันเรียกดูไซต์เหล่านี้ด้วย Chrome ปกติทุกอย่างทำงานได้ดี แต่ช่วงเวลาที่ฉันใช้ซีลีเนียมที่ฉันตรวจพบ
ในทางทฤษฎีแล้ว Chromedriver และ Chrome ควรมีลักษณะเหมือนกันทุกประการกับเว็บเซิร์ฟเวอร์ แต่อย่างใดพวกมันสามารถตรวจจับได้
หากคุณต้องการรหัสทดสอบลองทำสิ่งนี้:
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')
หากคุณเรียกดู stubhub คุณจะได้รับการเปลี่ยนเส้นทางและ 'ถูกบล็อก' ภายในหนึ่งหรือสองคำขอ ฉันกำลังตรวจสอบเรื่องนี้และฉันไม่สามารถหาวิธีที่พวกเขาสามารถบอกได้ว่าผู้ใช้กำลังใช้ซีลีเนียม
พวกเขาทำมันได้อย่างไร?
แก้ไขล่าสุด:
ฉันติดตั้งปลั๊กอิน Selenium IDE ใน Firefox และฉันถูกแบนเมื่อฉันไปที่ stubhub.com ในเบราว์เซอร์ Firefox ปกติด้วยปลั๊กอินเพิ่มเติมเท่านั้น
แก้ไข:
เมื่อฉันใช้พู้ทำเล่นเพื่อดูคำขอ HTTP ที่ถูกส่งไปมาฉันสังเกตว่าคำขอ 'เบราว์เซอร์ปลอม' มักจะมี 'ไม่แคช' ในส่วนหัวของการตอบกลับ
แก้ไข:
ผลลัพธ์เช่นนี้มีวิธีการตรวจสอบว่าฉันอยู่ในหน้า Selenium Webdriver จาก Javascriptแนะนำว่าไม่ควรมีวิธีการตรวจพบเมื่อคุณใช้งาน webdriver แต่หลักฐานนี้แสดงให้เห็นเป็นอย่างอื่น
แก้ไข:
เว็บไซต์อัปโหลดลายนิ้วมือไปยังเซิร์ฟเวอร์ของพวกเขา แต่ฉันได้ตรวจสอบและลายนิ้วมือของซีลีเนียมนั้นเหมือนกับลายนิ้วมือเมื่อใช้โครเมี่ยม
แก้ไข:
นี่เป็นหนึ่งใน payloads ลายนิ้วมือที่พวกเขาส่งไปยังเซิร์ฟเวอร์ของพวกเขา
{"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"}}
มันเหมือนกันในซีลีเนียมและโครเมี่ยม
แก้ไข:
VPN ใช้งานได้ครั้งเดียว แต่ตรวจพบหลังจากฉันโหลดหน้าแรก เห็นได้ชัดว่ามีการเรียกใช้จาวาสคริปต์เพื่อตรวจหา Selenium
distill
เทคโนโลยีการตรวจจับบอทและส่งมอบเนื้อหาโดยใช้akamaitechnologies.com
CDN จากที่แตกต่างกัน IPS เช่น95.100.59.245
, 104.70.243.66
,23.202.161.241