크롤링을 하다보면, 디버깅모드로 실행을 해야할때가 있다.
대부분 인증을 피하기 위한 용도이다. 자동창으로 띄우는 경우 인증화면이 발생하여,
크롤링을 제대로 할 수 없다. (물론 인증까지 자동으로 어떻게 할 수도 있겠지만)
간단한 해결책으로는 디버깅 크롬창을 띄워서 해결을 하였다.
이때 디버깅 크롬창도 자동으로 띄워서 해결할수도있다.
import subprocess
chrome_debug_command = r'"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:/Chrome_debug_temp"'
subprocess.Popen(chrome_debug_command, shell=True)
이와같이 subprocess
로 크롬창을 띄울수 있다.
chrome_debug_command = r'"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:/Chrome_debug_temp"'
subprocess.Popen(chrome_debug_command, shell=True)
chrome_options = Options()
chrome_options.add_argument('--start-maximized')
chrome_options.add_argument('--window-size=1920,1080')
chrome_options.add_argument('--log-level=3')
chrome_options.add_argument('--disable-logging')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
요런식으로 해결하면 되겠다.
단점은
chrome_options.add_argument( '--headless' )
모드가 되지 않는다는것(창을 보이지 않게 하는것)
*디버깅모드에서 헤들리스모드가 되도록 하려면 어떻게 하는지 아시는분알려주세요 ㅎ