Python 에서 Selenium 의 쿠키 조작 방법
HTTP 프로 토 콜 은 무상 태 프로 토 콜 입 니 다.데이터 교환 이 끝나 면 클 라 이언 트 와 서버 의 연결 이 닫 히 고 데 이 터 를 다시 교환 하려 면 새로운 연결 을 만들어 야 합 니 다.이것 은 서버 가 연결 에서 세 션 을 추적 할 수 없다 는 것 을 의미 합 니 다.즉,서버 와 처음 연결 하고 로그 인 에 성공 한 후에 도 두 번 째 요청 서버 는 현재 요청 이 어떤 사용자 인지 알 수 없다 는 것 이다.예 를 들 어 사용자 A 가 하나의 상품 을 구 매 하여 카 트 에 넣 었 는데 다시 상품 을 구 매 할 때 서버 는 이 구 매 행위 가 사용자 A 의 세 션 인지 사용자 B 의 세 션 인지 판단 할 수 없다.이 세 션 을 추적 하려 면 메커니즘 을 도입 해 야 합 니 다.
세 션 이란 무엇 입 니까?
사용 자 는 브 라 우 저 를 열 어 특정한 사 이 트 를 방문 하고 이 사이트 에서 임의의 페이지 를 조회 하 며 방문 이 완료 되면 브 라 우 저 를 닫 는 과정 을 세 션 이 라 고 합 니 다.
Cookie
의 등장 은 바로 이 문 제 를 해결 하기 위해 서 입 니 다.첫 번 째 로그 인 후 서버 가 이 사용자 상 태 를 기록 해 야 할 경우 Response
을 사용 하여 클 라 이언 트 브 라 우 저 에 Cookie
을 발급 하고 브 라 우 저 는 Cookie
데 이 터 를 본 지역 에 저장 합 니 다.이 사용 자 는 두 번 째 요청 을 보 낼 때 지난번 에 요청 한 Cookie
데 이 터 를 자동 으로 서버 에 휴대 하고 서버 는 이 Cookie
에 name
,value
등 정 보 를 저장 하 는 지 확인 하여 사용자 상 태 를 식별 하고 서버 는 필요 에 따라 Cookie
의 내용 을 수정 할 수 있다.Cookie
은 서버 가 클 라 이언 트 들 에 게 통행증 을 발급 하 는 것 과 같 습 니 다.한 사람 이 방문 하 더 라 도 반드시 자신의 통행증 을 휴대 해 야 합 니 다.이렇게 하면 서버 가 통행증 에서 고객 의 신분 을 확인 할 수 있 는데 이것 이 바로 Cookie
의 작업 원리 이다.Cookie
에 저 장 된 데 이 터 는 양 이 제한 되 어 있 으 며 브 라 우 저 마다 저장 크기 가 다 르 지만 일반적으로 4KB 를 초과 하지 않 기 때문에 Cookie
을 사용 하면 소량의 데이터 만 저장 할 수 있다.Cookie
의 출현 은 HTTP 프로 토 콜 의 무상 태 부족 을 보완 한다.그러나 Cookie
은 클 라 이언 트 에 저 장 된 것 으로 브 라 우 저 나 패키지 도 구 를 통 해 쉽게 얻 을 수 있 기 때문에 매우 안전 하지 않다.Session
은 또 다른 고객 상 태 를 기록 하 는 메커니즘 으로 Cookie
은 클 라 이언 트 브 라 우 저 에 저장 되 고 Session
은 서버 에 저장 된다.클 라 이언 트 브 라 우 저가 서버 에 접근 할 때 서버 는 클 라 이언 트 정 보 를 어떤 형식 으로 서버 에 기록한다.서버 에 저 장 된 데 이 터 는 더욱 안전 하고 도 둑 맞 기 쉽 지 않다.클 라 이언 트 브 라 우 저 를 다시 방문 할 때 이 Session
에서 이 고객 의 상 태 를 찾 으 면 됩 니 다.Cookie
메커니즘 이 고객 에 게 있 는'통행증'을 검사 함으로써 고객 의 신분 을 확인한다 면 Session
메커니즘 은 서버 에 있 는'고객 명세서'를 검사 함으로써 고객 의 신분 을 확인 하 는 것 이다.Session
은 프로그램 이 서버 에 구축 한 고객 파일 에 해당 하 며 고객 이 방문 할 때 고객 파일 표를 조회 하면 된다.Session
을 서버 에 저장 하 는 것 도 어느 정도 단점 이 있다.즉,서버 의 자원 을 점용 하 는 것 이다.그러나 현재 서버 는 이미 발전 하여 Session
정 보 를 저장 하 는 것 이 충분 하 다.다음 그림 에서 보 듯 이:
알림:5 단계 가 만 료 된 쿠키 나 잘못된 쿠키 를 가지 고 있 으 면 인증 에 실패 하고 인증 요청 페이지 로 돌아 갑 니 다.
쿠키 의 역할 기록:
Cookie
으로 이 루어 집 니 다.Cookie
에 사용자 이름과 비밀번호(암호 화)정 보 를 기록 하고 요청 할 때 서버 가 Cookie
을 받 으 면 식별 에 성공 하고 기본 값 은 로그 인 한 것 입 니 다.매개 변수
묘사 하 다.
name
필수쿠키 의 이름 을 정 합 니 다.
value
필수쿠키 의 값 을 정 하 다.
expire
선택 할 수 있다.쿠키 의 유효기간 을 정 하 다.
domain
선택 할 수 있다.쿠키 의 도 메 인 이름 을 지정 합 니 다.
path
선택 할 수 있다.쿠키 의 서버 경 로 를 규정 합 니 다.
secure
선택 할 수 있다.안전 한 HTTPS 연결 을 통 해 쿠키 를 전송 할 지 여 부 를 규정 합 니 다.
httpOnly
선택 할 수 있다.XSS 공격 방지(크로스 스 크 립 트 공격)
설명:
path
:Cookie
의 유효 범위 입 니 다.이 매개 변 수 는 domain
매개 변 수 를 바탕 으로 하 는 유효 범위 입 니 다.만약 에 path
이 ”/”
으로 설정 하면 전체 domain
에서 유효 합 니 다.secure
:Cookie
안전 한 https 만 통과 하 는 지 여 부 는 0 또는 1 입 니 다.값 이 1 이면 Cookie
은 https
연결 에 만 유효 하 며,기본 값 은 0 으로 Cookie
은 http
과 https
연결 에 모두 유효 하 다 는 뜻 이다.(0 또는 1,Flase 또는 True)httpOnly
:js
스 크 립 트 를 통 해 Cookie
정 보 를 읽 을 수 없습니다.그러면 XSS 공격(크로스 스 크 립 트 공격)을 효과적으로 방지 할 수 있 습 니 다.그러면 Cookie
의 안전성 이 증가 합 니 다.그럼 에 도 중요 한 정 보 를 Cookie
에 저장 하지 마 십시오.webdriver
은 Cookie
정 보 를 읽 고 추가 하 며 삭제 할 수 있 습 니 다.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셀 레 니 엄 의 쿠키 조작 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.셀 레 니 엄 쿠키 조작 에 관 한 더 많은 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 읽 어 주시 기 바 랍 니 다.앞으로 도 많은 사랑 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python Selenium XPath 텍스트 내용에 따라 요소 찾기 방법문제 현상 요소의 속성에 id,name이 없습니다.class가 있지만 비교적 대중적이고 위치도 고정되지 않는다.예를 들어 페이지 번호의 다음 페이지;그러면 어떻게 이 원소를 찾아야 합니까? 해결 방법 text() t...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.