[Python] unknown error: session deleted because of page crashfrom tab crashed
어장 Develop 2022. 4. 12. 12:21
1
2
3
4
|
***** Usage Dev Env *****
= OS - macOS Monterey ver 12.3.1
= IDE - VSCode
= Lang - Python 3.10.4
|
cs |
개발하고나서보니 아래의 내용 모두 다 무쓸모했다.
내가 크롤링하려던 사이트에서 스크립트의 오류인지 뭔지 chromedriver로는 정상적으로 로딩할 수 없었고, firefox를 이용한 geckodriver를 활용하니 단박에 모두 정리가 되었다.
아 크롬을 이렇게 버려야하나 ㅡㅡ;
파이썬으로 크롤링 개발을 하는데 요상한 에러가 발생했다. 사실 별 소스코드도 없이 파이썬에 셀레니움, 크롬드라이버를 붙여서 브라우저 하나 띄우는건데 여기서 저런 에러를 만날 줄이야 꿈에도 몰랐다.
대충 아래의 소스코드에서 오류가 발생했다.
1
2
3
4
5
6
7
8
|
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
chrome_options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=chrome_options)
driver.get('http://kimfish.co.kr')
driver.quit()
|
cs |
그리고 발생오류상황은 다음과 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
➜ ~ /usr/local/bin/python3 /Users/kimfish/DEV/py_workspace/testChromeDriver.py
Traceback (most recent call last):
File "/Users/kimfish/DEV/py_workspace/testChromeDriver.py", line 9, in <module>
driver.get("https://bbs.ruliweb.com")
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 437, in get
self.execute(Command.GET, {'url': url})
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py", line 425, in execute
self.error_handler.check_response(response)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/selenium/webdriver/remote/errorhandler.py", line 247, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash
from tab crashed
(Session info: chrome=100.0.4896.88)
Stacktrace:
0 chromedriver 0x0000000105383c34 chromedriver + 4406324
1 chromedriver 0x000000010531d290 chromedriver + 3986064
2 chromedriver 0x0000000104f7e71c chromedriver + 190236
=== 중략 ===
➜ ~
|
cs |
Message: unknown error: session deleted because from tab crashed 와 같은 오류에 대해 검색을 해보니, 가상머신(대부분 도커)의 /dev/shm 메모리가 부족하다는둥 뭐라는둥 말이 많았는데 난 단순히 내 로컬환경에서 개발을 할 뿐이다 ㅠ
그래서 조금 더 찾아보니 chromedriver 호출시, 다음과 같은 옵션을 설정해주면 된다고 한다.
1
2
3
4
5
6
|
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--window-size=1420,1080')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-gpu')
|
cs |
적용 후 돌렸다! 그런데도 똑같은 오류가 발생한다!
환장하겄다 싶어 옵션을 다 빼보면서 테스트 하다가 결국 원인을 찾기는 했다. 바로, --headless 옵션이 문제였다.
해당 옵션은 UI가 지원되지 않는 서버들을 위해 작동하는 옵션으로 알고 있는데, 내 개발환경에서는 왜 오류가 발생하는지는 아직 잘 모르겠다. 일단 저 옵션을 제외하고는 잘 동작하니까 개발하겠지만... 조금 불안하다. 원인을 알면 해결법도 찾아야하는데.. 으으
'어장 Develop' 카테고리의 다른 글
[Windows11] Openssh를 이용한 sftp 서버 생성 (0) | 2024.03.12 |
---|---|
[Python] 디렉토리 참조법 (0) | 2022.05.26 |
[Mac] chromedriver 설치부터 (1) | 2022.04.10 |
[MacBook] M1 MacBookPro 에 openjdk설치 (0) | 2022.04.09 |
[http1.1] Expect: 100-continue (0) | 2021.03.18 |