크롤링 할 때 다른 주소는 requests.get(url) 을 받으면 페이지 소스를 잘 받아오는데, 아무 반응이 없거나 위에 그림 처럼 오류가 발생하는 페이지가 있다. 이 때, requests.get(url).text 를 이용해서 내용을 확인해 볼 수 있다. improt requests url = "크롤링할 사이트주소" html = requests.get(url).text html 사이트에서 거부당했음을 확인 할 수 있다. 서버에서 봇으로 인지하고 차단한 경우이다. 불법적인 크롤링을 막기 위한 조치로 해당 사이트에서 크롤링 한 데이터를 상업적인 목적으로 활용할 생각이라면, 여기서 그만두는 것을 추천한다. 서버에서 봇인지 사람인지 사용자를 구분해주는 값을 담는 그릇이 있다. headers 라는 그릇에 {'User-Agent':'유저정보'}의 형태로 담겨있는데, 이 값을 사람인척 변경해주면 된다. '유저정보' 에 들어가 값은 아래 사이트에 들어가서. http://www.useragentstring.com/ UserAgentString.com - unknown version www.useragentstring.com 네모 안에 값 전체를 복붙하면 된다. import requests url = "크롤링할 사이트" header = {'User-gent' : '유저정보'} 거부당할 때와는 다른 결과가 나온다면 성공! 이후 코딩에서 soup는 이렇게 가져오면 좋다. import requests |