-
파이썬 - 무료 프록시 걸러내기 정상 찾기프로그래밍/Python 파이썬 2023. 3. 1.반응형
무료 프록시 사이트에서 json 형태로 무료 프록시 주소를 받아서
실제 서버 통신을 해보고 작동하는 프록시인지 체크하는 로직이다.
def proxy(): test_url = 'https://api.ipify.org' free_proxy = 'https://proxylist.geonode.com/api/proxy-list?limit=500&page=1&sort_by=upTime&sort_type=desc' proxy_list = [] # get proxy list from free site site_json = requests.get(free_proxy).json()['data'] # ip port mapping for i in site_json: # search socket if 'socks' in i['protocols'][0]: continue full_ip = i['ip'] + ':' + i['port'] proxy_list.append(full_ip) print(proxy_list) print(f'받은 프록시 : {len(proxy_list)}개') new_list = [] for i in range(len(proxy_list)-1): proxies = { "http": proxy_list[i], "https": proxy_list[i] } try: res = requests.get(test_url, proxies=proxies) print(proxy_list[i]) print(f'status_code: {res.status_code} - res.text : {res.text} - ip: {proxy_list[i]}') new_list.append(proxy_list[i]) except Exception as e: print(f'{proxy_list[i]} - {e}') print() print(f'정상 프록시 : {new_list}') return
보통 무료 프록시를 사용할때에는 작동 안하는 주소들이 많아서
걸러내서 사용을 해야하는데 걸러내는 로직을 프록시 넣는 형태에 따라서 만들어야 한다.
내가 예제에 사용한 무료 프록시 사이트에서는 JSON형태로 requests 요청을 할수있는 주소가 있었고
셀레니움 크롤링 필요 없이 간단하게 받을 수 있었다.
다만 문제는 무료 프록시의 종류가 많지 않고 그마저도 작동하는 주소는 몇개 없다는것이다.
반응형'프로그래밍 > Python 파이썬' 카테고리의 다른 글
Python - 기존 코드 병렬 처리 - 멀티쓰레드(Multi Thread) (0) 2023.10.20 VScode - 단축키 정리 / 모든 라인 접기 및 펼치기 (0) 2023.01.15 텔레그램 API Bot Chat Id 알아내기 (0) 2022.12.13 파이썬 버전 업그레이드 재 설치 방법 (0) 2022.11.11 python - selenium shadow dom 트러블슈팅 (0) 2022.08.03