Eu testei o Selenium com o Chromedriver e notei que algumas páginas podem detectar que você está usando o Selenium, mesmo que não haja automação. Mesmo quando estou apenas navegando manualmente, usando o Chrome através do Selenium e do Xephyr, muitas vezes recebo uma página dizendo que atividades suspeitas foram detectadas. Verifiquei meu agente de usuário e a impressão digital do navegador, e todos são exatamente idênticos ao navegador Chrome normal.
Quando eu navego para esses sites no chrome normal, tudo funciona bem, mas no momento em que uso o Selenium sou detectado.
Em teoria, o chromedriver e o chrome devem parecer literalmente exatamente o mesmo para qualquer servidor da web, mas de alguma forma eles podem detectá-lo.
Se você quiser algum código de teste, tente o seguinte:
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')
Se você navegar pelo stubhub, será redirecionado e "bloqueado" em uma ou duas solicitações. Estou investigando isso e não consigo descobrir como eles podem dizer que um usuário está usando o Selenium.
Como eles fazem isso?
EDIT UPDATE:
Instalei o plugin Selenium IDE no Firefox e fui banido quando visitei o stubhub.com no navegador normal do Firefox, apenas com o plug-in adicional.
EDITAR:
Quando uso o Fiddler para visualizar as solicitações HTTP enviadas e recebidas, notei que as solicitações de 'navegador falso' geralmente têm 'sem cache' no cabeçalho da resposta.
EDITAR:
resultados como este Existe uma maneira de detectar que estou em uma página do Selenium Webdriver em Javascript sugerir que não deve haver maneira de detectar quando você estiver usando um webdriver. Mas essa evidência sugere o contrário.
EDITAR:
O site carrega uma impressão digital em seus servidores, mas eu verifiquei e a impressão digital do selênio é idêntica à impressão digital ao usar o chrome.
EDITAR:
Essa é uma das cargas úteis de impressão digital que eles enviam para seus servidores
{"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"}}
É idêntico no selênio e no cromo
EDITAR:
As VPNs funcionam para um único uso, mas são detectadas depois que eu carrego a primeira página. Claramente, algum javascript está sendo executado para detectar o Selenium.
distill
tecnologia de detecção de bot e entrega de conteúdo usando akamaitechnologies.com
CDN de diffrent ips por exemplo 95.100.59.245
, 104.70.243.66
,23.202.161.241