이제 데이터 공부 안하는 블로그

[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 12회차 미션 본문

파이썬

[패스트캠퍼스 수강 후기] 파이썬 인강 100% 환급 챌린지 12회차 미션

공사노비 2020. 11. 13. 16:37

 

 



11일차

 

오늘은 크롤링 기초 수업을 들었습니다.

갑자기 크롤링 기초 수업으로 넘어왔습니다. 왜냐면 웹 개발이 하기 싫어서요...^_^

html과 css 실습 부분 실습은 따라해보면 아주 유용할 것 같긴 한데 나중에 따라해보기로 하고 jango와 flask 수업도 일단 넘어가고  더 재미있어보이는 크롤링 수업을 들어보도록 하겠습니다.

 


크롤링과 스크래핑

크롤링 혹은 스크래핑은 웹 페이지를 그대로 가져와서 거기서 데이터를 추출해 내는 행위입니다. 크롤링하는 소프트웨어가 있는데 그것은 크롤러(crawler)라고 부릅니다. (출처 : 나무위키)

 

크롤링과 스크래핑의 차이는 크롤링이 방대한 범위에서 데이터 수집을 한다고 하면 스크래핑은 보다 적고 구체적인 범위를 긁어오는 것을 말합니다. 

 

 


HTML tag란?

 

html tag는 html을 구성하는 기본 문법 요소입니다. html은 여러 태그들로 구성되어있고, 태그들이 모여서 html 문서를 만듭니다. 여러 태그들의 규칙에 따라서 우리가 코드를 작성해 놓으면 그것이 브라우저를 통해서 보여진다고 생각하면 됩니다. 


크롬 개발자 도구란?

구글에서 만든 웹브라우저인 크롬에는 개발을 도와주는 다양한 도구가 기본적으로 제공됩니다. 이를 개발자 도구라고 합니다. 개발자 도구를 이용하면 HTML, CSS, JavaScript의 생산성을 극대화 할 수 있습니다. (출처 : 생활코딩)

 

익스플로러에서 만든 개발자도구보다 크롬에서 만든 개발자도구가 좀 더 유연하고 사용하기 좋다고 합니다.

 

개발자 도구를 이용해서 크롤링을 하면 되는데요, 크롬 개발자 도구에서 select an element in the page to inspect it 을 누르면 페이지 상에 각 태그의 위치를 확인할 수 있습니다. 브라우저 위에 마우스를 갖다 대면 개발자 도구 상에 파랗게 표시되면서 어느 부분에 태그가 위치해 있는지 바로 확인할 수가 있습니다.  

 

크롬 개발자 도구에서 css selector를 선택하면 브라우저에서 우리가 가져올 데이터를 어디있는지를 확인할 수 있습니다. 

css selector를 선택해서 코드를 컨트롤 c 로 가져와서 파이썬에 컨트롤 v 해서 사용하면 됩니다. 

 


크롤링을 할 때 주의사항

 

1. 대상 웹페이지 조건 확인

웹사이트 마다 "robots.txt"파일을 통해서 클로링 불가한 부분을 표시하고 있습니다.

크롤링을 금지하는 사이트가 있을 수도 있고 특정 부분만 크롤링을 금지하는 사이트도 있을 수 있기 때문에

robot.txt를 통해서 대상 웹페이지의 조건을 확인 해야 합니다. 

예를 들어 duum.net/robot.txt 라고 입력해보면 다음 사이트에서 크롤링을 금지하는 부분이 어디인지 확인 할 수 있습니다.

 

2. 크롤러 분류

 

-상태유무

로그인을 해야만 볼 수 있는 데이터가 있으므로 상태유무를 확인해야합니다.

 

-자바스크립트 유무

자바스크립트로 데이터를 보여주는 경우 셀레니움 등과 같은 다른 엔진을 사용해야합니다.

 

3. Request 요청시 주의할 점(중요!)

서버 부하를 고려하여 크롤링 타임을 느슨하게 조절할 필요가 있습니다. (상대 사이트에 대한 예의)

 

4. 콘텐츠 저작권 문제(중요!)

저작권을 확인해야합니다.

 

5. 페이지 구조 변경 가능석 숙지(중요!)

사이트의 구조가 바뀔 수 있는 가능성을 숙지해야합니다. 포털사이트는 자주 바뀌기 때문입니다.

 

6. 기타

요즘은 많은 사이트들에서 크롤링을 위한 "data api"를 제공합니다. 이 data api를 이용하면 서버에 부하를 주지도 않고 더욱 체계적으로 데이터를 수집할 수 있습니다. 그렇기 때문에 되도록이면 먼저 data api 유무를 먼저 확인합시다.

 

 

 

강의소개 https://bit.ly/33a7nvc