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
'Python' 카테고리의 다른 글
암호화폐 등락률 정보를 디스코드로 전달받기 (feat. Crypto Bubbles) (1) | 2024.06.02 |
---|---|
주가 정보 액면 분할 적용하기 - 카카오(035720) 백테스팅 (0) | 2024.01.27 |
맥북 M1 Max LangChain 설치하기 (1) | 2024.01.21 |
OpenAI API 사용하기 - 코드 첨부 (0) | 2023.03.12 |
TensorFlow / PyTorch GPU 사용하여 병렬처리 하기 (0) | 2023.02.26 |