반응형
Python에서 Free 프록시를 이용하는 방법중 대표적인 2가지 방법을 정리해보도록 하겠다.
1. proxy-reqquests 라이브러리 이용
Python 라이브러리로 proxy-requests라는 라이브러리가 있는데, 이를 이용하여 간편하게 프록시 서버를 이용 할 수 있다.
아래와 같이 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")
위 프로그램 코드를 실행하면, 정상적으로 파일을 가져온 경우 중지하도록 하여, 외부 공개된 프록시 서버를 활용할 수 있다.
반응형
'Python' 카테고리의 다른 글
Python - List 추가 append/extend 이해 (0) | 2022.05.03 |
---|---|
Python - 특별 메소드, 마술 메소드, 던더 메소드 이해 (0) | 2022.04.28 |
Python - List 에서 항목 조절/선택, 건너뛰기 (0) | 2022.04.28 |
Python - Pandas Dataframe 합치기/붙이기 concat (0) | 2022.04.22 |
Python - InsecureRequestWarning 제거/무시하기 (0) | 2022.04.22 |