Crawling

requests 라이브러리 기본 메뉴얼 정리

bluebamus 2025. 2. 6.

1. 개요

   - requests 라이브러리는 Python에서 HTTP 요청을 쉽게 보낼 수 있도록 도와주는 라이브러리이다.

   - REST API 호출, 웹 스크래핑, 데이터 전송 등 다양한 용도로 활용된다.

 

2. 설치 방법

pip install requests

 

3. 주요 기능 및 사용 방법

   1) GET 요청

import requests

url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.get(url)
print(response.json())

 

   2) POST 요청

url = "https://jsonplaceholder.typicode.com/posts"
data = {"title": "foo", "body": "bar", "userId": 1}
response = requests.post(url, json=data)
print(response.json())

 

   3) PUT 요청 (전체 업데이트)

url = "https://jsonplaceholder.typicode.com/posts/1"
data = {"id": 1, "title": "updated title", "body": "updated body", "userId": 1}
response = requests.put(url, json=data)
print(response.json())

 

   4) PATCH 요청 (부분 업데이트)

url = "https://jsonplaceholder.typicode.com/posts/1"
data = {"title": "patched title"}
response = requests.patch(url, json=data)
print(response.json())

 

   5) DELETE 요청

url = "https://jsonplaceholder.typicode.com/posts/1"
response = requests.delete(url)
print(response.status_code)

 

   6) 쿼리 파라미터 사용

url = "https://jsonplaceholder.typicode.com/posts"
params = {"userId": 1}
response = requests.get(url, params=params)
print(response.json())

 

   7) 헤더 및 쿠키 설정

headers = {"User-Agent": "my-app"}
cookies = {"session_id": "123456"}
response = requests.get(url, headers=headers, cookies=cookies)
print(response.json())

 

   8) 사용자 인증

from requests.auth import HTTPBasicAuth

url = "https://httpbin.org/basic-auth/user/pass"
response = requests.get(url, auth=HTTPBasicAuth("user", "pass"))
print(response.status_code)

 

   9) 토큰 인증

headers = {"Authorization": "Bearer YOUR_ACCESS_TOKEN"}
response = requests.get(url, headers=headers)
print(response.status_code)

 

   10) 응답 객체

response = requests.get(url)
print(response.status_code)  # HTTP 상태 코드
print(response.headers)  # 응답 헤더
print(response.text)  # 응답 본문 (문자열)
print(response.json())  # JSON 응답 처리

 

   11) 리디렉션 방지

response = requests.get(url, allow_redirects=False)
print(response.status_code)

 

   12) JSON 데이터 처리

response = requests.get(url)
data = response.json()
print(data[0]["title"])

 

   13) 추가 정리

      1. HTML 파싱 :

         - requests 라이브러리 자체에는 HTML 파싱 기능이 포함되어 있지 않다. 일반적으로 BeautifulSoup 같은 다른 라이브러리를 함께 사용하여 HTML을 파싱하게 된다.

      2. JavaScript 실행 :

         - requests 라이브러리는 HTTP 요청을 보내는 기능만을 제공하므로, 자바스크립트 코드를 실행할 수는 없다. 자바스크립트 실행이 필요한 경우에는 Selenium과 같은 웹 드라이버를 사용하는 것이 보다 적합할 수 있다.

      3. 명시적, 암묵적 대기 :

         - requests 라이브러리는 기본적으로 동기적인 요청을 보내므로, 명시적이거나 암묵적인 대기 기능은 제공하지 않는다. 웹 페이지가 완전히 로드된 후에 데이터를 가져오려면 다른 방법을 사용해야 할 수 있다.
      4. 스크롤 제어, 키보드 입력, 클릭 :

         - requests 라이브러리는 웹 브라우저를 제어하거나 인터랙티브한 작업을 수행할 수 없다. 이러한 작업이 필요한 경우에는 Selenium과 같은 라이브러리를 고려해야 한다.

 

      - 따라서, requests 라이브러리는 간단한 HTTP 요청과 응답 처리에 유용하지만, 웹 스크래핑이나 자동화 작업에 있어서 다양한 기능을 지원하는 라이브러리가 필요할 수 있다.

 

 - reference : 

https://requests.readthedocs.io/en/latest/

'Crawling' 카테고리의 다른 글

BeautifulSoup4 매뉴얼 정리  (0) 2025.02.06
Selenium 사용 매뉴얼 - 기본 사용 방법 정리  (0) 2025.02.05

댓글