반응형

셀레니움, User-Agent 변경하여 접속하기

 

pip install user-agent

 

from user_agent import generate_user_agent, generate_navigator
print(generate_user_agent(device_type='desktop'))
print(generate_user_agent(os='win', device_type='desktop'))
print(generate_user_agent(os=('mac', 'linux'), device_type='desktop'))
navigator = generate_navigator()
print(navigator)
print(navigator['platform'])

매번 사용할 때마다 반환되는 User-Agent 값이 달라진다. 

 

generate_user_agent 는 단순히 지정한 속성에 알맞은 user-agent 문자열을 반환하는 반면에 generate_navigator은 user-agent 객체(dictionary 타입)을 반환한다. 객체 key 값을 지정하여 알맞은 값을 추출해서 사용할 수 있습니다.

 

[참고] https://github.com/lorien/user_agent 

 

GitHub - lorien/user_agent: Generator of User-Agent header

Generator of User-Agent header. Contribute to lorien/user_agent development by creating an account on GitHub.

github.com

 

마이크로소프트 엣지를 이용한 크롤링 준비 예

from msedge.selenium_tools import Edge, EdgeOptions
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
from user_agent import generate_user_agent, generate_navigator
import time

options = EdgeOptions()
options.use_chromium = True
options.add_argument('--disable-blink-features=AutomationControlled')
# 사용할 엣지 드라이버 실행 파일 등록 (msedgedriver.exe 드라이브는 미리 다운로드 받아 저장해둔다)
driver = Edge('c:/webdriver/msedgedriver.exe', options = options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": """ Object.defineProperty(navigator, 'webdriver', { get: () => undefined }) """})

# 접속할 주소 
URL = 'https://google.com'

# User Agent 새로 생성 
userAgent = generate_user_agent()
options.add_argument(f'user-agent={userAgent}')

# 접속   
driver.get(URL)
# 접속한 주소 출력
print(driver.current_url)

time.sleep(20)
# 드라이버 종료 
driver.quit()

 

[접속 화면]

 

 

반응형

+ Recent posts