본문 바로가기

프로그래밍/Python

파이썬으로 인스타그램 좋아요 프로그램 만들기(1) selenium으로 연 크롬창이 자동으로 닫힐 때 해결 법

파이썬으로 인스타그램 자동 좋아요 프로그램을 만들고 있다.

인터넷으로 찾아가면서 삽질 후에 만들고 있는데 파이썬으로 인스타그램 창을 열 때, 자꾸 닫히고 에러코드가 떠서 삽질했다. 

 

해결법을 공유하고자 한다.

 


1. selenium으로 크롬창을 열었는데 1초도 안되서 바로 닫힐 때

 

닫히는 종류가 크롬창을 열고 data;; 가 주소창에 나타난 후 url주소로 바로 가자마자 닫히는 경우가 있고, 1~2초 정도 기다리다가 닫히는 에러가 있다. 만약 1초도 안되서 바로 닫힌다면 chromedriver의 버전과 자신의 크롬 주소가 같은지 한번 본다. 처음에는 크롬 버전이 달라서 에러가 났다.

자신의 크롬 버전을 아는 법은 

chrome://version/

주소창에 위에 주소를 치고 들어가면 

맨 위에처럼 크롬 버전이 나온다. 나의 크롬 버전은 87.0.4280.88 이다.

chromedriver.chromium.org/downloads

 

Downloads - ChromeDriver - WebDriver for Chrome

WebDriver for Chrome

chromedriver.chromium.org

위에 주소에 들어가서 똑같은 버전의 크롬드라이버를 다운 받으면 된다.


2. usb_device_handle_win.cc:1020 Failed to read descriptor from node connection:  시스템에 부착된 장치가 작동하지 않습니다. (0x1F) 라고 나올 때

 

사실 이거는 크롬 여는 것과 상관이 없었으나 이것 때문에 안되는 줄 알았다. 하지만 에러메시지가 나오는 것이 보기 싫으니 이 설정도 같이 해주도록 하자.

 

options = webdriver.ChromeOptions()
options.add_experimental_option("excludeSwitches", ["enable-logging"])
driver = webdriver(options=options)
url = 'https://www.instagram.com/'
driver.get(url)
driver.maximize_window()

위에 2줄 옵션을 설정하고

driver = webdriver()를 하지 말고 options = options 한다.

이거는 그냥 로그를 없애는 거니까 안해도 된다. 필요없는 에러로그 나오는게 보기 싫어서 써준 코드다. 

 


3. 2~3초 있다가 꺼질 때 해결법

 

스택오버플로우에서 검색을 하다가 이것 저것 써봤는데 while 문을 밑에 써주니까 된다.

while(True):

    pass 

 

이거를 밑에 추가해준다.

# options = webdriver.ChromeOptions()
# options.add_experimental_option("excludeSwitches", ["enable-logging"])
driver = webdriver.Chrome()
#(options=options)
url = 'https://www.instagram.com/'
driver.get(url)
driver.maximize_window()
while(True):
    pass