본문 바로가기
IT/Python

Python Error - Failed to establish a new connection: [WinError 10061]

by 큰공 2021. 10. 10.
728x90
반응형

들어가며

 오늘 살펴볼 파이썬 에러코드는 아래 에러 코드 입니다.

 Failed to establish a new connection: [WinError 10061]

 

에러

 selenium을 이용한 webdriver 에서 사이트를 get하기 위하여 크롬을 재시작하는 부분에서 아래 에러가 발생합니다.

 

Traceback (most recent call last):
  File "d:\Work\coin\Instagram_Auto.py", line 76, in <module>
    browser.get("https://www.instagram.com")
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 333, in get
    self.execute(Command.GET, {'url': url})
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 319, in execute
    response = self.command_executor.execute(driver_command, params)
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\remote_connection.py", line 374, in execute
    return self._request(command_info[0], url, body=data)
    resp = self._conn.request(method, url, body=body, headers=headers)
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\request.py", line 78, in request
    return self.request_encode_body(
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\request.py", line 170, in request_encode_body
    return self.urlopen(method, url, **extra_kw)
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\poolmanager.py", line 375, in urlopen
    response = conn.urlopen(method, u.request_uri, **kw)
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 783, in urlopen
    return self.urlopen(
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\connectionpool.py", line 755, in urlopen
    retries = retries.increment(
  File "C:\Users\root\AppData\Local\Programs\Python\Python39\lib\site-packages\urllib3\util\retry.py", line 574, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='127.0.0.1', port=7796): Max retries exceeded with url: /session/a86a290b15663524df58ced279a7ede6/url (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x000001AC54573160>: Failed to establish a new connection: [WinError 10061] 대상 컴퓨터에서 연결을 거부했으므로 연결하지 못했습니다'))

 

코드가 발생하는 부분은 여기 입니다.

browser.get("https://www.instagram.com")

 

특이한점이 있다면, 한번은 수행이 되는데, 다음 반복문에서 수행이 안되는 점입니다.

 

해결 방법

 seleenium 을 사용할때, webdriver를 지정을 해주고, get을 하면 해당 사이트로 이동하는데, quit()로 한번 크롬을 닫은 상태에서는 chromedrider 의 path 를 한번 더 읽어주어야 한다.

 

 즉, 해당 코드는 webdirver.Chrome 패스를 읽어들이는 부분을 반복문 "안" 으로 넣으면 해결이 된다.

#에러가 발생하는 코드
browser = webdriver.Chrome('./chromedriver', chrome_options=options)

while True:	
    browser.get("https://www.instagram.com")  
    browser.quit()


#정상적으로 동작하는 코드
while True:
    browser = webdriver.Chrome('./chromedriver', chrome_options=options)
    browser.get("https://www.instagram.com")  
    browser.quit()

 

 

 

728x90
반응형

댓글