호기심 많은 분석가

[크롤링] 접속 차단되었을 때 User-Agent 지정 본문

Coding/Information

[크롤링] 접속 차단되었을 때 User-Agent 지정

DA Hun 2021. 4. 22. 14:44

포스팅 개요

여느 날과 같이 공부하고 있던 와중, 친구가 급하게 도움을 요청했다. 엔젤 클럽의 팀장을 맡고 있는 친구였는데, 어떤 페이지 크롤링을 하고 싶은데 어떻게 해야할 지 모르겠다는 것이었다. 

 "마! 함 보자!", 호기롭게 외쳤지만 웬걸? 난생 처음 보는 화면이 등장했다. 

 

차단당한 크롤링 데이터

과연 이 둘은 절체절명의 위기를 어떻게 극복할 것인가!


포스팅 본문

 크롤링을 시도했을 때 서버에서 봇으로 인지하고 정보를 주지 않는 경우가 있다고 합니다. 그럴 땐 저희가 사람인 것을 서버에게 입증해주어야 합니다.

 다음과 같이 입증할 수 있습니다.

headers = {'User-Agent' : '유저정보'}
url = '접속하고자 하는 사이트 주소'
soup = requests.get(url, headers = headers).text
soup = BeautifulSoup(soup, "html.parser")

 이렇게 하면 저희가 원하던 데이터의 형태로 예쁘게 출력할 수 있습니다.

 

원하던 크롤링 데이터

 그렇다면, 이 '유저정보'는 어디에서 얻을 수 있을까요? 다음의 사이트에서 확인해볼 수 있습니다.

 

UserAgentString.com - unknown version

 

www.useragentstring.com

 이 User Agent String explained 의 내용 부분을 유저정보에 입력해주면 됩니다.


 친구의 질문 덕분에 저도 새로운 것을 하나 배워갈 수 있는 좋은 시간이었습니다.

절체절명의 위기를 해결하고 우정을 돈독히 할 수 있었습니다. BeautifulSoup를 통해 크롤링을 하다 막혀 당황한 누군가에게 이 글이 도움이 되길 바랍니다. 감사합니다. :)