파이썬 requests 관련 질문

조회수 676회

requests 모듈을 이용하여 학교 포탈에 로그인 후 필요한 정보를 크롤링하려고 합니다.

제가 request를 처음 써봐서 그런데

로그인페이지에 아이디 비번을 받아서 포스트 ->A로 포스트->B로 포스트->메인페이지 겟

의 과정으로 로그인이 이루어진다고 했을때 첫번째에 아이디 비번만 포스트 해주면 뒷부분은 자동으로

되는것인가요? 그런데 자꾸 로그인이 안되는것 같습니다.

  • 설명이 모호한 부분이 있는데요. 뒷 부분이란 'A로 포스트->B로 포스트->메인페이지 겟' 전체를 말하나요? 그리고 자동으로 된다는건 아이디 비번을 매번 보내지 않아도 되는거냐...라는 말이겠죠? 편집요청빌런 2020.4.8 09:10
  • 아 질문이 좀 그랬네요.. 말씀하신것처럼 최초에 아이디 비번 한번만 포스트해주면 로그인되고 메인페이지 뜨기까지 서버에서 돌아가는 포스트 같은것들은 제가 안건드려도 되는지에 대한 질문입니다. 김기환 2020.4.8 17:50

1 답변

  • 안녕하세요

    일단 해당 소스코드가 와 타겟 홈페이지에 대한 정보가 없는 관계로 개념적인 말씀만 드리겠습니다.

    • 최초 접속하여 전달받은 쿠키가 requests.post 를 통해 POST 메소드를 전달할때 포함되어야 이후에 값에 대해서 받을 수 있습니다. 또한 일련의 통신에 대해서 하나의 Session으로 묶여있어야 로그인 완료에 따른 redirect페이지를 받을 수 있습니다.

    • 예)

      import requests
      url = 'target.com/login.asp' #로그인 action page
      data = {'id': 'howoni', 'pw',':D'} #post multipart/form-data 기준
      header = {'User-Agent': 'answer'} #html 헤더
      r = requests.session() #request 세션
      r = requests.get('target.com') #타겟 페이지 접속
      c = r.cookies.get_dict() #타겟에 대한 쿠키정보 딕셔너리형태로 가져옴.
      r = requests.post(url, data, headers=header, cookies=c) 
      #헤더,쿠키를 포함한 post 메소드 전달
      print(r.text) #로그인완료되어 redirect 된 페이지에 대한 text 출력
      

    Pentest 목적으로 로그인점검할때 위와 같은스크립트 베이스로 작성합니다. 질문내용에 정확한 정보가 없어 정확한 답은 아닐지래도 참고 해주시면 좋을거 같습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)