본문 바로가기
Python

[Selenium] 크롬 디버그 모드로 크롤링 하기

by Playdev 2022. 2. 1.
728x90

 

Selenium 으로 instagram, google 등을 크롤링 하려다 보면, 봇으로 감지 되어 오래 못가 막히곤 한다.

방법을 찾던 중 크롬을 디버그 모드로 실행 후 크롤링을 진행하면 가능한 것으로 보여 기록을 남겨두려 한다.

 

1. 아래와 같은 명령어로 크롬을 디버그 모드로 실행한다. (mac OS 기준)

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222 --user-data-dir="~/ChromeProfile"

 

 

2. Python 에서 Selenium 실행 시 옵션을 추가한다. (experimental_option)

from selenium import webdriver
import platform
from bs4 import BeautifulSoup
import random
from time import sleep

# TODO random user_agents
user_agents = [
    'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36',
]
user_agent_index = random.choice(list(range(0, len(user_agents), 1)))

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('headless')
chrome_options.add_argument('window-size=1920x1080')
chrome_options.add_argument('disable-gpu')
chrome_options.add_argument(user_agents[user_agent_index])

chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

 

이하 셀레니움 명령어는 별도로 찾아보기로 하고

접근 방법에 대해서만 간략하게 기록용으로 남긴다.

728x90