Python 에서 Selenium 의 쿠키 조작 방법

6610 단어 SeleniumCookie
1.쿠키 소개
HTTP 프로 토 콜 은 무상 태 프로 토 콜 입 니 다.데이터 교환 이 끝나 면 클 라 이언 트 와 서버 의 연결 이 닫 히 고 데 이 터 를 다시 교환 하려 면 새로운 연결 을 만들어 야 합 니 다.이것 은 서버 가 연결 에서 세 션 을 추적 할 수 없다 는 것 을 의미 합 니 다.즉,서버 와 처음 연결 하고 로그 인 에 성공 한 후에 도 두 번 째 요청 서버 는 현재 요청 이 어떤 사용자 인지 알 수 없다 는 것 이다.예 를 들 어 사용자 A 가 하나의 상품 을 구 매 하여 카 트 에 넣 었 는데 다시 상품 을 구 매 할 때 서버 는 이 구 매 행위 가 사용자 A 의 세 션 인지 사용자 B 의 세 션 인지 판단 할 수 없다.이 세 션 을 추적 하려 면 메커니즘 을 도입 해 야 합 니 다.
세 션 이란 무엇 입 니까?
사용 자 는 브 라 우 저 를 열 어 특정한 사 이 트 를 방문 하고 이 사이트 에서 임의의 페이지 를 조회 하 며 방문 이 완료 되면 브 라 우 저 를 닫 는 과정 을 세 션 이 라 고 합 니 다.
  • Cookie 의 등장 은 바로 이 문 제 를 해결 하기 위해 서 입 니 다.첫 번 째 로그 인 후 서버 가 이 사용자 상 태 를 기록 해 야 할 경우 Response 을 사용 하여 클 라 이언 트 브 라 우 저 에 Cookie 을 발급 하고 브 라 우 저 는 Cookie 데 이 터 를 본 지역 에 저장 합 니 다.이 사용 자 는 두 번 째 요청 을 보 낼 때 지난번 에 요청 한 Cookie 데 이 터 를 자동 으로 서버 에 휴대 하고 서버 는 이 Cookiename,value 등 정 보 를 저장 하 는 지 확인 하여 사용자 상 태 를 식별 하고 서버 는 필요 에 따라 Cookie 의 내용 을 수정 할 수 있다.
  • Cookie 은 서버 가 클 라 이언 트 들 에 게 통행증 을 발급 하 는 것 과 같 습 니 다.한 사람 이 방문 하 더 라 도 반드시 자신의 통행증 을 휴대 해 야 합 니 다.이렇게 하면 서버 가 통행증 에서 고객 의 신분 을 확인 할 수 있 는데 이것 이 바로 Cookie 의 작업 원리 이다.
  • Cookie 에 저 장 된 데 이 터 는 양 이 제한 되 어 있 으 며 브 라 우 저 마다 저장 크기 가 다 르 지만 일반적으로 4KB 를 초과 하지 않 기 때문에 Cookie 을 사용 하면 소량의 데이터 만 저장 할 수 있다.
  • Cookie 의 출현 은 HTTP 프로 토 콜 의 무상 태 부족 을 보완 한다.그러나 Cookie 은 클 라 이언 트 에 저 장 된 것 으로 브 라 우 저 나 패키지 도 구 를 통 해 쉽게 얻 을 수 있 기 때문에 매우 안전 하지 않다.
  • 2、세 션 소개
  • Session 은 또 다른 고객 상 태 를 기록 하 는 메커니즘 으로 Cookie 은 클 라 이언 트 브 라 우 저 에 저장 되 고 Session 은 서버 에 저장 된다.클 라 이언 트 브 라 우 저가 서버 에 접근 할 때 서버 는 클 라 이언 트 정 보 를 어떤 형식 으로 서버 에 기록한다.서버 에 저 장 된 데 이 터 는 더욱 안전 하고 도 둑 맞 기 쉽 지 않다.클 라 이언 트 브 라 우 저 를 다시 방문 할 때 이 Session 에서 이 고객 의 상 태 를 찾 으 면 됩 니 다.
  • 만약 에 Cookie 메커니즘 이 고객 에 게 있 는'통행증'을 검사 함으로써 고객 의 신분 을 확인한다 면 Session 메커니즘 은 서버 에 있 는'고객 명세서'를 검사 함으로써 고객 의 신분 을 확인 하 는 것 이다.Session 은 프로그램 이 서버 에 구축 한 고객 파일 에 해당 하 며 고객 이 방문 할 때 고객 파일 표를 조회 하면 된다.
  • Session 을 서버 에 저장 하 는 것 도 어느 정도 단점 이 있다.즉,서버 의 자원 을 점용 하 는 것 이다.그러나 현재 서버 는 이미 발전 하여 Session 정 보 를 저장 하 는 것 이 충분 하 다.
  • 3.쿠키 작업 원리 도해
    다음 그림 에서 보 듯 이:

    알림:5 단계 가 만 료 된 쿠키 나 잘못된 쿠키 를 가지 고 있 으 면 인증 에 실패 하고 인증 요청 페이지 로 돌아 갑 니 다.
    쿠키 의 역할 기록:
  • 사용자 가 처음 로그 인 할 때 다음 에 직접 로그 인하 거나 비밀 번 호 를 기억 하 는 것 을 선택 하면 기록 Cookie 으로 이 루어 집 니 다.
  • Cookie 에 사용자 이름과 비밀번호(암호 화)정 보 를 기록 하고 요청 할 때 서버 가 Cookie 을 받 으 면 식별 에 성공 하고 기본 값 은 로그 인 한 것 입 니 다.
  • 4.쿠키 내용 파라미터 설명
    매개 변수
    묘사 하 다.
    name
    필수쿠키 의 이름 을 정 합 니 다.
    value
    필수쿠키 의 값 을 정 하 다.
    expire
    선택 할 수 있다.쿠키 의 유효기간 을 정 하 다.
    domain
    선택 할 수 있다.쿠키 의 도 메 인 이름 을 지정 합 니 다.
    path
    선택 할 수 있다.쿠키 의 서버 경 로 를 규정 합 니 다.
    secure
    선택 할 수 있다.안전 한 HTTPS 연결 을 통 해 쿠키 를 전송 할 지 여 부 를 규정 합 니 다.
    httpOnly
    선택 할 수 있다.XSS 공격 방지(크로스 스 크 립 트 공격)
    설명:
  • path:Cookie 의 유효 범위 입 니 다.이 매개 변 수 는 domain 매개 변 수 를 바탕 으로 하 는 유효 범위 입 니 다.만약 에 path”/” 으로 설정 하면 전체 domain 에서 유효 합 니 다.
  • secure:Cookie 안전 한 https 만 통과 하 는 지 여 부 는 0 또는 1 입 니 다.값 이 1 이면 Cookiehttps 연결 에 만 유효 하 며,기본 값 은 0 으로 Cookiehttphttps 연결 에 모두 유효 하 다 는 뜻 이다.(0 또는 1,Flase 또는 True)
  • httpOnly:js 스 크 립 트 를 통 해 Cookie 정 보 를 읽 을 수 없습니다.그러면 XSS 공격(크로스 스 크 립 트 공격)을 효과적으로 방지 할 수 있 습 니 다.그러면 Cookie 의 안전성 이 증가 합 니 다.그럼 에 도 중요 한 정 보 를 Cookie 에 저장 하지 마 십시오.
  • 5.Selenium 이 쿠키 를 조작 하 는 APIwebdriverCookie 정 보 를 읽 고 추가 하 며 삭제 할 수 있 습 니 다.webdriver 조작 Cookie 의 방법 은 다음 과 같다.
    조작 하 다.
    설명 하 다.
    get_cookies()
    모든 쿠키 정보 획득(포인트)
    add_cookie(cookie_dict)
    쿠키 를 추가 하려 면 name 과 value 값(중점)이 있어 야 합 니 다.
    get_쿠키(name 값)
    지정 한 name 이름 의 쿠키 정보 되 돌리 기
    delete_cookie(name)
    특정(부분)쿠키 정보 삭제
    delete_all_cookies()
    모든 쿠키 정보 삭제
    6.Selenium 이 쿠키 를 조작 하 는 예
    
    """
    1.    :
          selenium cookie  
    2.  
        2.1    cookie
            driver.get.cookies()
                       [{},{},{}]
        2.2  cookie
            driver.add_cookie(  )
              :    {"name":"name ","value":"value "}
    3.  
          selenium cookie  
    """
    # 1.  selenium
    from selenium import webdriver
    from time import sleep
    
    # 2.     
    driver = webdriver.Chrome()
    
    # 3.    A  
    #        ,cookie []。
    url = "http://www.baidu.com/"
    driver.get(url)
    
    # 4.  cookie
    # 4.1   cookie
    cookies = driver.get_cookies()
    for cookie in cookies:
        #    cookie  name value
        print("%s -> %s" % (cookie['name'], cookie['value']))
    
    print("=======================")
    # 4.2     cookie      
    #      cookie name    
    #       None
    print(driver.get_cookie("BAIDUID"))
    
    print("=======================")
    # 4.3   cookie
    cookie = {"name": "key-aaaaaaa", "value": "value-aaaaaaa"}
    driver.add_cookie(cookie)
    
    #        
    cookies = driver.get_cookies()
    for cookie in cookies:
        print("%s -> %s" % (cookie['name'], cookie['value']))
    
    print("=======================")
    # 4.4     cookie
    #   name  
    driver.delete_cookie("key-aaaaaaa")
    #        
    cookies = driver.get_cookies()
    for cookie in cookies:
        print("%s -> %s" % (cookie['name'], cookie['value']))
    
    print("=======================")
    # 4.5     cookie
    driver.delete_all_cookies()
    print(driver.get_cookies())
    
    # 5.     
    sleep(2)
    driver.quit()
    참고:https://www.cnblogs.com/linguoguo/p/5106618.html
    셀 레 니 엄 의 쿠키 조작 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.셀 레 니 엄 쿠키 조작 에 관 한 더 많은 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 읽 어 주시 기 바 랍 니 다.앞으로 도 많은 사랑 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기