상황 설명
연구 목적으로 ACM이라는 사이트에서 논문 정보를 크롤링하다가 IP를 차단당했다. 이후 이 사이트의 IP 차단에 대해 찾아보니 서버에 과도한 요청을 보내면 IP가 차단될 수 있으니 크롤링에 주의해야 한다는 것을 알게 되었다. 그제서야 Robots.txt의 존재가 기억났고.. 크롤링 딜레이가 60으로 적혀 있는 것을 확인했다.
차단 사유
원래 이 사이트를 크롤링하는 데 쓰던 코드가 있었는데, 그 코드는 사이트의 api를 이용해서 제대로 요청을 보내고 데이터를 받는 코드였으나 내가 이해하기 좀 어려웠다. 그래서 bs4 코드를 셀레늄의 방식으로 써서 돌려봤는데, 문제는 단시간에 너무 많은 페이지를 방문한 것. 과도한 요청 때문에 차단된 것으로 짐작하고 있다.
해결
파파고와 chatGPT의 도움을 받아 문의 이메일에 내 상황과 여러가지 말을 쓰고 차단 해제를 요청했다. 오늘 이메일을 보냈으니 며칠 정도는 기다려야 답이 올 것 같다. 그동안 다른 사이트를 크롤링하면 되긴 하는데, 차단 안 당하게 주의할 겁니다..
반성
특정 웹사이트에서 대량의 데이터가 필요하다면 내가 의도치 않은 DDOS를 시도하게 되지는 않을지 생각해보고, Robots.txt도 확인해 보자.. API가 있다면 어려워도 배워서 쓰자.