본문 바로가기
Python Requests 기초 강의

[파이썬] proxy python requests - [4강/소스코드]

by 파이썬코딩대학 2025. 1. 7.

Python에서 프록시를 사용하는 방법

 

requests python proxy

 

 

아래 코드는 Python에서 프록시(Proxy) 서버를 통해 HTTP GET 요청을 보내는 가장 기본적인 예시입니다.
프록시 서버를 처음 들어보신다면, “내가 요청을 직접 보내는 대신에, 중간에 있는 서버(프록시)가 대신 요청을 보내주는 것” 정도로 이해하시면 됩니다.

 

requests Proxy를 왜 쓰냐고요? 프로그램 만들때 IP 차단당하는 일이 많더라구요

proxy requests python 사용하는 이유

 

 

 


 

 

 

 

 

 

1. 프록시란 무엇인가?

프록시(Proxy) 서버는 대리 서버라고도 부르며, 사용자의 요청을 받아 대신 전달해 주는 역할을 합니다.
예를 들어, 내가 구글 서버에 접속해서 검색을 하고 싶다고 할 때, 내 컴퓨터 -> 프록시 서버 -> 구글 서버 순으로 요청이 전달됩니다.
프록시 서버는 내가 보낸 요청을 받아서, 구글 서버에 전달하고 응답을 다시 나에게 돌려주는 식이죠.

프록시를 쓰는 이유는 크게 다음과 같습니다.

  1. IP 우회 또는 익명성
    특정 지역에서만 접속 가능하도록 제한된 서비스를 우회하거나, 내 IP 주소를 직접 노출하고 싶지 않을 때 유용합니다.
  2. 보안
    회사나 기관에서 내부망을 보호하기 위해, 외부와의 연결을 특정 프록시 서버를 통해서만 하도록 설정하기도 합니다.
  3. 캐싱(Caching)
    자주 쓰는 데이터나 파일을 프록시 서버에서 캐싱해두면, 같은 요청이 들어올 때 빠르게 응답할 수 있습니다.

2. 코드 구조 한눈에 보기

import requests

# 1) 프록시 서버 주소 (IP:PORT)
my_proxy = "92.79.157.81:8080"  # 프록시 예시

# 2) 프로토콜별 설정
proxies = {
    "http": my_proxy,
    "https": my_proxy,
}

# 3) 요청할 URL
url = "https://ipinfo.io/json"

# 4) GET 요청에 proxies 설정
response = requests.get(url, proxies=proxies)

# 5) 응답 결과 확인
print(response.text)
with open('04_response.html','w') as f:
    f.write(response.text)

2.1 import requests

  • Requests 라이브러리를 사용하기 위해 import requests 해줍니다.
  • 만약 설치가 안 되어 있다면, 터미널에서 pip install requests를 통해 설치하실 수 있습니다.

2.2 프록시 서버 주소 지정

my_proxy = "92.79.157.81:8080"
  • 실제로 사용할 프록시 서버의 IP와 포트를 문자열로 작성합니다.
  • 보통 "IP주소:PORT" 형태로 작성합니다. 여기서는 예시 IP를 보여주고 있습니다.
  • 공개 프록시 서버나 회사 내부에서 사용할 프록시 주소가 있다면 여기에 적절히 바꿔 넣으면 됩니다.

2.3 프로토콜별 프록시 설정

proxies = {
    "http": my_proxy,
    "https": my_proxy,
}
  • requests 라이브러리는 httphttps 요청을 각각 다르게 설정할 수 있습니다.
  • 위 코드처럼 httphttps 키 각각에 my_proxy를 할당하면, 모든 HTTP/HTTPS 요청에 같은 프록시를 쓰게 됩니다.
  • 필요에 따라 http, https를 다른 주소로 설정할 수도 있습니다.

2.4 요청할 URL

url = "https://ipinfo.io/json"
  • 여기서는 ipinfo.io라는 사이트에서 JSON 형태로 내 IP 정보를 확인하려고 합니다.
  • "https://ipinfo.io/json" 엔드포인트는, 요청을 보내면 ‘사용자의 IP 정보’를 JSON 형태로 돌려줍니다.

2.5 GET 요청 보내기

response = requests.get(url, proxies=proxies)
  • requests.get 함수에 url을 넣어주면서, proxies=proxies 옵션으로 프록시 설정을 같이 보냅니다.
  • 이렇게 하면, 해당 요청은 my_proxy에 지정된 프록시 서버를 거쳐서 실행됩니다.
  • 응답 객체인 response에는 서버에서 보낸 응답의 상태 코드, 본문, 헤더 등의 정보가 담겨있습니다.

 


 

3. 코드 실행 결과 확인하기

python requests proxy 결과
python requests proxy 결과

 

캐나다 토론토에 있는걸로 나오네요. 프록시가 잘 입혀진 모습입니다 !

 

4강 - 소스코드

import requests

# 1) 프록시 서버 주소 (IP:PORT)
my_proxy = "92.79.157.81:8080"  # 프록시 예시

# 2) 프로토콜별 설정
proxies = {
    "http": my_proxy,
    "https": my_proxy,
}

# 3) 요청할 URL
url = "https://ipaddress.my/"
url = "https://ipinfo.io/json"
# 4) GET 요청에 proxies 설정
response = requests.get(url, proxies=proxies)

# 5) 응답 결과 확인
print(response.text)
with open('04_response.html','w')as f:
    f.write(response.text)