본문 바로가기
Python

Python - Free Proxy server 사용하기

by 올엠 2022. 4. 27.
반응형

Python에서 Free 프록시를 이용하는 방법중 대표적인 2가지 방법을 정리해보도록 하겠다.

1. proxy-reqquests 라이브러리 이용

Python 라이브러리로 proxy-requests라는 라이브러리가 있는데, 이를 이용하여 간편하게 프록시 서버를 이용 할 수 있다.

proxy-requests · PyPI

 

proxy-requests

Make HTTP requests with scraped proxies

pypi.org

아래와 같이 ProxyRequests를 통해 프록시 서버를 이용할 수 있다.

from proxy_requests import ProxyRequests

url = 'https://api.ipify.org'
r = ProxyRequests(url)
r.get()

 

2. 웹 무료 프록시 서버 리스트 활용

위 라이브러리를 이용하지 않고 사용할 수 있는 방법도 존재한다.

이경우 직접 프록시 서버 리스트를 직접 조정할 수 ㅇ있는 장접이 있다.

무료 프록시 서버를 제공하는 사이트의 웹을 구조 분석해서 해당 서버 정보와 Port정보를 저장해서 프록시로 활용하는 방법이다. 이를 위해서는 먼저 HTML를 구조적으로 해석이 가능한 라이브러리가 필요한데 예제에서는 lxml 를 사용하여 문자열로 분해한 후에 해당 내용를 가져오는 방식으로 하였다.

from lxml.html import fromstring
import requests

def get_proxies():
    url = 'https://free-proxy-list.net/'
    response = requests.get(url, verify=False)
    parser = fromstring(response.text)
    proxies = []
    for i in parser.xpath('//tbody/tr'):
        if i.xpath('.//td[7][contains(text(),"yes")]'):
            proxy = ":".join([i.xpath('.//td[1]/text()')[0], i.xpath('.//td[2]/text()')[0]])
            proxies.append(proxy)
    return proxies

proxies_list = get_proxies()

url = 'https://api.ipify.org'
for proxy_server in proxies_list:
    print("Request #%d", proxy_server)
    try:
        response = requests.get(url,proxies={"http": proxy_server, "https": proxy_server})
        print(response.json())
        break
    except:
        print("Skipping. Connnection error")

위 프로그램 코드를 실행하면, 정상적으로 파일을 가져온 경우 중지하도록 하여, 외부 공개된 프록시 서버를 활용할 수 있다.

반응형