[파이썬] requests 활용 사례 분석

Requests is a popular Python library for making HTTP requests. It provides a simple and elegant way to communicate with APIs and retrieve data from web servers. In this article, we will explore some real-world use cases of how Requests can be utilized effectively in Python.

1. Sending GET Requests

One of the most common use cases of Requests is sending GET requests to retrieve data from a server. With just a few lines of code, you can make a GET request and handle the response.

import requests

url = 'https://api.example.com/data'
response = requests.get(url)

if response.status_code == 200:
    data = response.json()
    # Handle the retrieved data
    print(data)
else:
    print('GET request failed')

In this example, we send a GET request to 'https://api.example.com/data'. If the response status code is 200, we assume the request was successful and parse the response as JSON. Otherwise, we handle the error.

2. Sending POST Requests

Requests also allows us to send POST requests to submit data to a server, such as submitting a form or creating a new resource.

import requests

url = 'https://api.example.com/create'
data = {'name': 'John Doe', 'age': 25}

response = requests.post(url, data)

if response.status_code == 201:
    new_resource = response.json()
    # Handle the newly created resource
    print('New resource created:', new_resource)
else:
    print('POST request failed')

This code sends a POST request to 'https://api.example.com/create' with the specified data. If the response status code is 201, we assume the request was successful and parse the response as JSON. Otherwise, we handle the error.

3. Handling Authentication

Requests supports various authentication methods, such as Basic Authentication, OAuth, or API keys. You can easily add authentication headers to your requests.

import requests
from requests.auth import HTTPBasicAuth

url = 'https://api.example.com/data'
username = 'user'
password = 'pass'

response = requests.get(url, auth=HTTPBasicAuth(username, password))

if response.status_code == 200:
    data = response.json()
    # Handle the authenticated data
    print(data)
else:
    print('Authentication failed')

In this example, we provide the username and password for Basic Authentication using the auth parameter. If the authentication is successful, we parse the response as JSON, otherwise, we handle the error.

4. Handling Headers and Parameters

Requests allows you to specify custom headers and query parameters in your requests. This is useful when interacting with APIs that require specific headers or additional parameters.

import requests

url = 'https://api.example.com/data'
headers = {'User-Agent': 'Mozilla/5.0', 'Accept-Language': 'en-US'}
params = {'page': 1, 'limit': 10}

response = requests.get(url, headers=headers, params=params)

if response.status_code == 200:
    data = response.json()
    # Handle the retrieved data
    print(data)
else:
    print('GET request failed')

In this example, we pass custom headers in the headers parameter and query parameters in the params parameter of the requests.get() method. Adjust the headers and parameters according to your specific needs.

Conclusion

Requests is a powerful and versatile library for making HTTP requests in Python. It simplifies the process of sending and handling requests, making it a valuable tool for web scraping, API integration, or any other task that requires interacting with web servers. Understanding how to effectively use Requests can greatly enhance your Python programming skills.