• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

optoins.add_argument 관련 질문입니다

20.05.17 14:39 작성 조회수 163

0

User-Agent: ... 이걸 넣었을 때 생기는 문제인데요

아래 그림처럼 header를 인위적으로 주려고 파란부분을 모두 복사 후에 add_argument의 인자로 주면 코드를 동작시에 엄청 많은 불필요한 창들이 추가로 나오게 되는데 이유가 뭔가요?

그리고 파란 부분에서 딱 필요한 속성?들은 뭔지 알 수 있을까요?

답변 1

답변을 작성해보세요.

0

안녕하세요

user-agent 는 서버측에 현재 해당 HTML 파일을 요청하는 클라이언트의 the application, operating system, vendor, and/or version 등을 알려주는 HTML 헤더 정보입니다. 이 정보를 마치 웹브라우저가 접속한 것처럼 보이기 위해, 강제로 해당 헤더를 넣어주는 것인데요. 위 캡쳐해주신 화면에서 보시는 바와 같이, 요청을 하신 웹브라우저가 64비트 윈도우를 쓰고 있고, 웹브라우저 내의 웹킷은 537.36 버전, 크롬은 81 버전을 쓰고 있다 정도로 각 인자를 이해하시면 될 것 같아요. 

엄청 불필요한 창이 뜨는 것은 왠지 저 user-agent를 잘못 넣었다기 보다, 이를 실행하는 코드 상의 문제로 의심은 가는데요. 다음 코드 정도로 테스트를 해보시면 어떨까 합니다.

감사합니다.

from selenium import webdriver

 

options = webdriver.ChromeOptions()

options.add_argument('headless')

options.add_argument('window-size=1920x1080')

options.add_argument("disable-gpu")

options.add_argument("User-Agent:  Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36")

options.add_argument("lang=ko_KR")

 

chromedriver = '/usr/local/Cellar/chromedriver/chromedriver' # 맥

driver = webdriver.Chrome(chromedriver, chrome_options=options)

driver.get('http://v.media.daum.net/v/20170202185812986')

 

body = driver.find_element_by_id('harmonyContainer')

print (body.text)    

driver.quit()