Python에서 HTTP 요청 최적화
Python에서 수많은 HTTP 요청을 신속하게 보내야 하는 필요성이 종종 발생하며, 특히 대규모 데이터세트를 처리할 때 더욱 그렇습니다. 그러나 Python의 다양한 동시성 및 스레딩 옵션 중에서 가장 효율적인 접근 방식을 선택하는 것은 어려울 수 있습니다. 한 가지 실행 가능한 솔루션은 간단하면서도 효과적인 방법을 활용하는 것입니다.
효율적인 HTTP 요청 구현
다음 코드는 Python(2.6)에서 매우 효율적인 구현을 보여줍니다. 호환성):
import urlparse from threading import Thread import httplib, sys from Queue import Queue concurrent = 200 def doWork(): while True: url = q.get() status, url = getStatus(url) doSomethingWithResult(status, url) q.task_done() def getStatus(ourl): try: url = urlparse(ourl) conn = httplib.HTTPConnection(url.netloc) conn.request("HEAD", url.path) res = conn.getresponse() return res.status, ourl except: return "error", ourl def doSomethingWithResult(status, url): print status, url q = Queue(concurrent * 2) for i in range(concurrent): t = Thread(target=doWork) t.daemon = True t.start() try: for url in open('urllist.txt'): q.put(url.strip()) q.join() except KeyboardInterrupt: sys.exit(1)
설명
이 최적화된 솔루션은 리소스 사용과 작업 실행의 균형을 맞추는 간소화된 접근 방식을 활용하여 기존 방법보다 성능이 뛰어납니다. 속도.
위 내용은 효율적인 데이터 처리를 위해 Python에서 HTTP 요청을 어떻게 최적화할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!