개발 꿀팁/PYTHON

selenium 프레임워크 stealth.min.js 파일은 브라우저 지문 기능을 숨깁니다

Jammie 2022. 12. 2. 15:06
반응형

브라우저 지문이 무엇입니까?

브라우저 지문은 브라우저의 다양한 정보를 말하며, 우리가 다른 사이트를 방문할 때 익명 모드에서도 웹사이트가 우리의 신원을 식별하는 데 도움을 줄 수 있습니다.
사람의 손에 있는 지문이 유일한 이유는 각각의 지문이 독특한 무늬를 가지고 있고 이 무늬가 요철 피부에 형성되어 독특한 특징을 가지고 있기 때문입니다.


브라우저 지문과 손과 손가락의 지문은 모두 독특한 특성을 가지고 있습니다.웹 사이트는 브라우저 식별 정보를 얻고 일부 계산을 수행하여 값을 얻으며 이 값은 브라우저 지문입니다.



브라우저 지문을 수동으로 엽니다

정상적인 상황에서는 수동으로 브라우저를 열고 웹사이트 https://bot.sannysoft.com/를 입력합니다.

selenium 인터페이스 모드 없이 브라우저를 엽니다

selenium 운영 브라우저는 웹 사이트에서 수십 가지 특징을 감지하여 당신이 크롤러임을 쉽게 식별할 수 있습니다

seleenium 인터페이스 모드 브라우저 열기:

from selenium import webdriver


chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
driver = webdriver.Chrome(chrome_options=chrome_options)

driver.get('https://bot.sannysoft.com/')

#현재 페이지를 캡처합니다
driver.save_screenshot('1.png')

<br/>

그림 생성하기:

분명히 웹 사이트에 파충류인 것으로 밝혀졌습니다!



브라우저의 지문을 숨기는 방법입니다

브라우저의 지문 기능을 해결하는 열쇠는 실제로 stealth.min.js 파일입니다. 파이썬을 통해 이 js 파일을 실행하면 브라우저의 지문을 숨길 수 있습니다

stealth.min.js 파일 다운로드 주소: 팔로우 글 말 공식 계정, 답변: 브라우저 지문 숨기기


요청 헤더 추가 + stealth.min.js 파일 실행으로 브라우저 지문을 숨깁니다:

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# 요청 헤더 위장 브라우저를 추가합니다
chrome_options.add_argument(
    'user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36')
driver = webdriver.Chrome(chrome_options=chrome_options)

with open('stealth.min.js') as f:
    js = f.read()

driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
    "source": js
})

driver.get('https://bot.sannysoft.com/')
driver.save_screenshot('2.png')

실행 결과:

stealth.min.js를 실행하여 브라우저 지문을 숨기는 것은 이미 일반 접속과 같습니다!

 

반응형