#Selnium #ChromeDriver #Bot 우회하기 #Bot Bypass #Chrome
크롤링을 하기 위해 Selenium으로 봇을 만들어 사이트를 크롤링하다가 갑자기 Bot으로 탐지되어 정상적으로 크롤링을 하지 못하는 경우가 생깁니다.
여러 우회방법이 있겠지만 이번 글에서 소개해드릴 방법은 세가지입니다. IP, USER-AGENT, REFERER 입니다.
물론 이 세가지보다 중요한것은 "너무 봇같지 않게" 크롤링하는 것입니다.
너무 빠르게 탐색한다는지 그런 행위들은 사이트에서 쉽게 봇으로 탐지할 수 있습니다.
이제 방법을 소개해드리겠습니다.
1. Random IP로 크롤링
tor를 이용한 임의의 IP로 크롤링하는 방법입니다. tor는 다음 사이트에서 다운로드할 수 있습니다.
options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=socks5://127.0.0.1:9050')
tor설치 후 proxy server로 바뀐 아이피로 크롤링할 수 있습니다.
2. user-agent 설정
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36")
options.add_argument("app-version=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.75 Safari/537.36")
Chromedirver의 경우 user-agent가 bot으로 나와 웹사이트에서 걸리는 경우도 있습니다.
이 경우 user-agent를 다음과 같은 형식으로 지정하면 됩니다.
3. Referer 설정
Referer를 보는 사이트들도 매우 많다. Referer의 경우, 따로 코드를 짤 필요 없이 구글 확장프로그램을 이용하면 된다.
필자는 Referer Control이라는 확장 프로그램을 이용한다.
chrome.google.com/webstore/detail/referer-control/hnkcfpcejkafcihlgbojoidoihckciin?hl=ko
설치한 뒤 확장 프로그램을 키면 다음과 같은 화면이 나오는데, Custom을 눌러 원하는 대로 Referer을 지정해주면 된다.
이 이외에도 다양한 방법들로 사이트는 봇을 탐지한다. 필자의 경우 연구용으로 구글 로그인을 시도한 적 있는데 3일동안 봇 우회를 계속해서 연구하여 결국 성공했다.
더욱 좋은 방법이 있으면 댓글로 부탁드립니다.
'ETC > Python' 카테고리의 다른 글
[Python] 파이썬 엑셀 읽기, 쓰기 + xlrd not supported error 해결방법 (1) | 2021.02.21 |
---|---|
[Python] chromedriver selenium 자동설치 [셀레니움, 크롬드라이버] (2) | 2020.12.12 |
[Python] 네이비즘 티케팅 연습 매크로를 만들어보자 1탄 (0) | 2020.12.07 |
[Python] Telegram 메시지 봇(bot) 만들기 (0) | 2020.11.25 |
Python 문자열인지 숫자인지 확인 (0) | 2020.08.24 |