• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Python, SQL 게시판 selenium option 병합 가능한가요

selenium option 병합 가능한가요

4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 글쓴이
  • #95829

    임규연
    참가자
    코드는 일단 이렇습니다
    
    # 네이버 로그인 CAPTCHA 우회하기 
    # 네이버는 selenium을 막기 위해 자동화 봇을 많이 설정해놓음 -> selenium 안 들키게 해야함
    # sol 1) 복사 붙여넣기 이용 -> 뚫리다가 안뚫리다가 함
    # sol 2) 실제 브라우저처럼 꾸미기 (chromedriver는 좀 불안정해서 네이버가 그걸 알아차리지 않게 드라이버를 꾸미면 됨)
    from selenium import webdriver
    import time
    # 첫 번째 옵션 (selenium 중간에 안꺼지게 함)
    option1 = webdriver.ChromeOptions()
    option1.add_experimental_option("detach", True)
    # 두 번째 옵션
    # add_argument로 평소에 크롬 브라우저에서 썼던 사용자 정보처럼 꾸미기
    # -> option.add_argument(r'user-data-dir=크롬 프로필 경로')
    option2 = webdriver.ChromeOptions()
    option2.add_argument("user-data-dir=/Users/alphastation/Library/Application Support/Google/Chrome/Default")
    # 두 개의 옵션 병합
    merged_options = {**option1.to_capabilities(), **option2.to_capabilities()}
    # WebDriver 생성
    driver = webdriver.Chrome(options=merged_options)
    # 페이지 열기 및 대기
    driver.get('https://nid.naver.com/nidlogin.login?svctype=262144&url=http://m.naver.com/aside/')
    time.sleep(2)
    # WebDriver 종료
    driver.quit()
    selenium이 자기 일 다 하면 크롬이 꺼져서요 detach로 안꺼지게 해놓고 싶어서 옵션을 기존에 만들어놨었는데 블로그 강의에서 user-data-dir로 captcha를 우회하더라구여
    그래서 detach 옵션이랑 user-data-dir 옵션을 병합해서 한 드라이버에 집어넣고 싶은데 가능한가요? 일단은 저렇게 딕셔너리로 해봤는데 안되네요 ㅠㅠ
    
    #95846

    codingapple
    키 마스터
    time.sleep(10000) 같은거 주면 안꺼질걸요 
    https://stackoverflow.com/a/76364265 
    옵션2개만들필요없이 add_argument() 계속 하면 됩니다
    undetected chrome driver 쓰면 더 쉬울수도요
    #95902

    임규연
    참가자
    아 add_argument()를 계속 하는 방법이 있었네요 감사합니다~~
    #95907

    임규연
    참가자
    add_argument()에 이어서 add_experimental_option()까지 이어서 하고 try, except, finally문 이용해서 프로그램 종료 안되게 대기시켰더니 되었습니다 감사합니다~
4 글 보임 - 1 에서 4 까지 (총 4 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠