안녕하십니까
코딩사과의 짭 코딩 파인애플입니다
이번 시간에는 requests 모듈에 관해 알아보겠습니다.
requests는 파이썬에서 웹 서버와 통신하기 위해 사용하는 외부 라이브러리입니다.
인터넷에서 웹사이트를 방문 및 API를 호출, 파일을 다운로드하는 등 대부분의 웹 통신 작업을 requests 라이브러리로 수행할 수 있습니다.
예컨데 저희가 브라우저(Chrome, Edge 등)에서 https://example.com을 입력하면 브라우저가 해당 웹사이트에 접속하여 페이지를 받아옵니다
requests는 이 과정을 파이썬 코드로 대신 수행해 주는 라이브러리입니다
requests문을 설치하려면 다음과 같은 과정을 거쳐야합니다.
CMD 또는 터미널에서
pip install requests
또는
python -m pip install requests
명령어를 통해 깔아주고 설치가 완료되었다면
import requests
print(requests.__version__)
을 통해 버전 정보가 나오면 성공입니다.

가장 흔히 사용되는 기능입니다
웹 사이트에 데이터를 가져오는 명령입니다.
GET은 주로 웹 통신(HTTP)에서 서버의 데이터를 조회하거나 가져올 때 사용하는 요청 방식을 의미합니다
저희가 웹이나 이미지를 불러오는 것 또한 GET요청에 해당합니다.
import requests
response = requests.get("https://example.com")
print(response.status_code)
print(response.text)
print(response.json())
response : 변수명 (아무거나 상관없음)
requests.get() : GET 요청을 보낸다.
"https://..." : 접속할 주소
.status_code : 서버가 요청을 처리한 결과를 숫자로 알려주는 속성
.text : 해당 웹의 HTML 코드가 출력
.json()은 JSON 데이터를 파이썬의 딕셔너리나 리스트 형태로 변환해 줍니다 (API에서 자주 사용)
.status_code에서 출력 예시로 200이 나왔다 하면 200은 "성공"을 의미하는 상태코드입니다
대표적인 상태 코드는 다음과 같습니다.
200 성공
201 생성 성공
301 영구 이동
302 임시 이동
400 잘못된 요청
401 인증 필요
403 접근 금지
404 페이지 없음
500 서버 오류
response = requests.get(
"https://example.com",
timeout=5
)
의 timeout=N 을 통해 N만큼의 시간이 흐르면 오류가 발생하게 만들 수 있습니다.
POST는 서버에 데이터를 전송할 때 사용합니다
예를 들어 로그인, 회원가입, 게시글 작성 등이 POST 요청입니다
POST는 서버의 데이터를 생성/수정할 때 사용합니다
데이터를 HTTP 본문(Body)에 숨겨 대용량 전송이 가능합니다.
import requests
data = {
"username": "user1",
"password": "1234"
}
response = requests.post("https://example.com", data=data)
print(response.status_code)
data : 딕셔너리입니다 여기에는 서버로 보낼 데이터를 저장합니다.
data=data : "data라는 매개변수 안에 data값 (위 딕셔너리)를 넣어라" 라는 의미.
requests.post() : post 요청을 보낸다.
username은 user1이며 password은 1234로 보내는 명령입니다.
다음에는 해당 모듈을 활용한 브루트포싱을 이용해 플래그를 얻는 워게임을 실습해보겠습니다
https://dreamhack.io/wargame/challenges/931
이상으로 글을 마치겠습니다 감사합니다
