도와주세요

파이썬에서 requests.Session()에 대한 간단한 질문을 드립니다 ^^

이니스프리2019.11.09 21:45조회 수 37댓글 2

    • 글자 크기

안녕하세요?


requests 라이브러리에서 with requests.Session()에 대한 간단한 질문을 드립니다.


경우에 따라서는 실무적으로 중요할 수도 있겠지만 개인적으로 궁금한 내용에 가까운데요 ^^



예컨대 아래와 같이 with requests.Session() as s: 을 사용하게 되면


session.close()를 하지 않아도 되는 장점이 있겠죠.


with requests.Session() as s:
    first_page = s.get('https://www.clien.net/service')
    LOGIN_INFO = {**LOGIN_INFO, **{'_csrf': csrf['value']}}
    login_req = s.post('https://www.clien.net/service/login', data=LOGIN_INFO)



그런데 header에 user-agent 같은 것을 다음과 같은 방식으로 넣었다고 가정하면요.



headers = {'Accept-Language': 'ko-KR,ko;q=0.9,en-US', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36'}




user-agent를 검사하는 사이트에서는 이렇게 get 또는 post 요청을 날릴 때마다 headers = headers를 계속 넣어줘야 아무런 문제가 발생하지 않을까요?


아니면 한 번 headers를 넣어주면 그 상태가 그대로 유지되는 것일까요?


간단히 테스트해보니 한 번 넣어줘도 별 문제가 없는 것 같은데 보편적으로 그런 것인지는 잘 모르겠네요.


이론적으로(?) 생각해보면 session이란 것은 상태정보를 웹 서버에 저장하는 것으로서 user-agent와는 직접적인 연관이 있지 않을 것 같은데요.


예컨대 브라우저의 확장 프로그램을 이용하여 user-agent를 변경해도 로그인 자체가 끊기지는 않으니깐요.


그런데 이렇게 계속 넣어야 한다면 상당히 비효율적인 것 같다는 생각이 들어서 여쭤보네요~


with requests.Session() as s:
    first_page = s.get('https://www.clien.net/service', headers = headers)
    LOGIN_INFO = {**LOGIN_INFO, **{'_csrf': csrf['value']}}
    login_req = s.post('https://www.clien.net/service/login', data=LOGIN_INFO, headers = headers)



그럼 오늘 일부 지역에서 날씨가 영하로 떨어졌다고 하던데 스포어 회원님들께서도 감기 조심하세요! ^-^


항상 감사드립니다!!


ཇོ་མོ་གླང་མ

    • 글자 크기
[SSD] Micron 1100 vs Samsung 860 QVO 어떻게 생각하시는가요? (by 이니스프리) 리눅스에서 랜섬웨어 감염 원인이 무엇일까요? (by 맛스타)
  • 2019.11.11 23:46

    headers 값을 갱신하면 됩니다.


    with requests.Session() as s:
        # 아래와 같이 사용하시면 header 값이 고정되어서 실행됩니다.
        s.headers.update(headers)
        first_page = s.get('https://www.clien.net/service')
        LOGIN_INFO = {**LOGIN_INFO, **{'_csrf': csrf['value']}}
        login_req = s.post('https://www.clien.net/service/login', data=LOGIN_INFO)



    https://github.com/psf/requests/blob/master/requests/sessions.py#L449


    p.prepare(
                method=request.method.upper(),
                url=request.url,
                files=request.files,
                data=request.data,
                json=request.json,
                # 아래 부분을 통해 self.headers 값을 계속 사용하는 것을 알 수 있습니다.
                headers=merge_setting(request.headers, self.headers, dict_class=CaseInsensitiveDict),
                params=merge_setting(request.params, self.params),
                auth=merge_setting(auth, self.auth),
                cookies=merged_cookies,
                hooks=merge_hooks(request.hooks, self.hooks),
            )




  • @humit
    이니스프리글쓴이
    2019.11.12 12:54

    번번이 감사합니다 ^-^

    s.headers.update(headers) 이런 간단한 방법이 있었군요!

    제가 멍청했네요~ ㅠㅠ

    라이브러리를 뜯어보면서 공부를 해야 되는 것이군요 ㄷㄷ

    그럼 humit 님께서도 점심식사 맛있게 드시고 즐거운 오후 되세요!

댓글 달기

번호 제목 글쓴이 날짜 조회 수
공지 [중요] IP 변경이 있습니다.20 마스터 2019.09.20 1470
공지 [중요] 고정 IP에 문제가 발생한 것 같습니다.1 마스터 2019.09.20 1193
공지 회원 전용 페이지가 생겼습니다.15 마스터 2018.03.20 9754
공지 [필독] 질문하는 방법7 마스터 2018.02.23 1317
644 윈도우 NTFS에서 확장자의 대소문자가 구별되나요? (파이썬 pathlib.Path(file).suffix 관련)6 이니스프리 2019.11.19 62
643 코딩 컨벤션상 전역변수와 지역변수의 변수명을 동일하게 하는 것이 무방한가요?4 이니스프리 2019.11.17 37
642 카카오 API OCR의 인식률은 어떤가요? 이니스프리 2019.11.16 27
641 3.5인치 외장하드 케이스에 SSD를 연결하면 전압과 관련된 문제가 발생할까요?2 이니스프리 2019.11.16 35
640 국내 유료 웹호스팅 사이트 추천을 부탁드립니다4 이니스프리 2019.11.16 50
639 윈도우7 익스플로러11에서 인터넷옵션/시작옵션/마지막 세션의 탭으로 시작이 작동이 안됩니다.3 kyhsyou 2019.11.15 45
638 구글 애드센스 잘아시는분 있나유?2 슬기 2019.11.14 47
637 스포어 호스팅 사용 중에 실수로 반복문을 잘못 돌리면 계정이 정지되나요? ㅠㅠ2 이니스프리 2019.11.14 37
636 가계부 프로그램 추천 부탁드립니다!2 이니스프리 2019.11.12 52
635 유튜브에 유튜버 '분류' 또는 '장르'라는 것이 존재하나요??2 이니스프리 2019.11.12 30
634 현재 신제품 구매가 가능한 배터리 탈착식 스마트폰에 어떤 것이 있을까요? 이니스프리 2019.11.10 37
633 [SSD] Micron 1100 vs Samsung 860 QVO 어떻게 생각하시는가요?5 이니스프리 2019.11.09 65
파이썬에서 requests.Session()에 대한 간단한 질문을 드립니다 ^^2 이니스프리 2019.11.09 37
631 리눅스에서 랜섬웨어 감염 원인이 무엇일까요?14 맛스타 2019.11.08 97
630 명함 제작 업체 추천 부탁드립니다!2 협스 2019.11.08 39
629 피규어샵 방문과 관련하여 질문 드립니다6 이니스프리 2019.11.06 60
628 싸이월드 미니홈피 크롤링 과정에서 swf 파일 다운로드와 관련하여 질문 드립니다 ㅠㅠ6 이니스프리 2019.11.05 144
627 갤럭시노트10+ 구매해도 괜찮을까요??2 이니스프리 2019.11.03 37
626 PC 원격접속을 위한 스마트폰 앱 추천을 부탁드립니다.14 이니스프리 2019.11.02 80
625 히어로 무비 추천 부탁드립니다!30 이니스프리 2019.10.29 174
이전 1 2 3 4 5 6 7 8 9 10... 33다음
첨부 (0)
서버에 요청 중입니다. 잠시만 기다려 주십시오...