- 특정 URL의 컨텐츠를 호출하는 파이썬 스크립트
- 도메인 제외되고 URL의 Path만 있는 파일을 읽어 컨텐츠 호출
python3 requests get 호출 스크립트
$ vi request_get.py #! /bin/python3 import sys import requests import time import logging logging.basicConfig(filename='./preload.log', level=logging.INFO) def make_server_list(file): serverList = [] with open(file, mode='r') as serverfile: for server in serverfile: server = server.strip('\n') if not server: break serverList.append(server) return serverList def curl_request(server, domain, path): headers = { "host": domain, } response = requests.get("http://"+server+path, headers=headers, timeout=10) #response = requests.head("http://"+server+path, headers=headers, timeout=10) return response if __name__ == '__main__': domain = sys.argv[1] urlArgs = sys.argv[2] serverArgs = sys.argv[3] if len(sys.argv) != 4: print("Insufficient arguments") sys.exit() with open(urlArgs, mode='r' ) as urlfile: serverList = make_server_list(serverArgs) for fileLine in urlfile: fileLine = fileLine.strip('\n') #scheme=fileLine.split('://',maxsplit=1)[0] #domain=fileLine.split('/',maxsplit=3)[2] path=fileLine for server in serverList: start = time.perf_counter() response = curl_request(server, domain, path) request_time = time.perf_counter() - start if response.status_code == 200: print("server:" + server + "\t\tpreload url : " + domain + path + "\ttime : " + str(round(request_time,3))+"s") logging.info("success preload : " + server + "\tpreload url : " + domain + path + "\ttime : " + str(round(request_time,3))+"s") else: print("error preload : " + server + "\tpreload url : " + domain + path) logging.info("error preload : " + server + "\tpreload url : " + domain + path) #time.sleep(1)
url 중에 도메인 제외한 리스트
$ cat urllist.txt /test.txt
서버 리스트
$ cat serverlist.txt 8.8.8.8
실행 예제 (실행 형식만 설명하지 실제 동작 X)
$ python3 request_get.py test.co.kr urllist.txt serverlist.txt server:8.8.8.8 preload url : test.co.kr/test.txt time : 3.037s
'프로그래밍 언어 > python(파이썬)' 카테고리의 다른 글
pip3 설치 간 egg_info failed with error code 1 오류 발생 해결 (0) | 2022.07.19 |
---|---|
python3으로 WHOIS 모듈 활용하여 Registry에서 관리하는 도메인 만료기간 확인 (0) | 2022.06.28 |
python2.6으로 ftp 활용하여 특정 디렉토리에 파일 다운로드 (0) | 2022.06.28 |
CentOS에서 Python 버전 변경 → update-alternatives 사용 (0) | 2022.06.28 |
python3로 Centos7 리눅스 서버 1초마다 tx, rx 의 값 출력 (0) | 2022.06.28 |