본문 바로가기

프로그래밍(TA, AA)/스크립트

[파이썬] 파이썬을 이용한 웹 크롤링 강좌

요즘 이직을 준비하고자, 이것저것 네트워크, 데이터 관련 대학강좌를 수강하고 있습니다.

좋은 엔지니어가 되려면 백엔드 지식(인프라, 보안..) 특히 데이터 처리에 대한 지식은 필수인 것 같습니다.


파이썬 신경 안쓰고 있었는데, 빅데이터 수집 작업을 크롤링이라고 부릅니다. 빅데이터의 크롤링과는 같은 개념은 아니겠지만, 파이썬으로 웹크롤링 애플리케이션을 간단하게 구현할 수 있다고 하여, 본 강좌를 수강목록에 추가하였습니다. 


개념을 익히는 것도 중요하지만, 개념과 실전은 또 다른 문제이다보니, 직접 크롤링을 구현해보고 싶었습니다. 예전 인턴시절에 PHP를 이용해 크롤러를 만든적이 있긴한데, 그때는 멋도 모르고 시키는 것만 했었습니다. 무언가를 알 수 있는 길이라는걸 인지하니 강의를 듣기 전 마음가짐부터가 달라지는 것 같습니다.


데이터 마이닝 쪽은 파이썬을 많이 이용하는걸 보면,

파이썬은 테크니컬한 무언가를 구현하는데 있어서는, 심플한만큼 강력한 언어인 것 같습니다.


파이썬의 장점은 간결하고 수도코드에 가깝다는데 있습니다.


강좌명은 "파이썬을 이용한 웹크롤링 어플리케이션 만들기" 입니다.


강의 제공사이트는 인프런(https://www.inflearn.com)입니다. 7개 강의로 총 3시간 20분으로 구성되어 있습니다.


섹션 1. 웹 환경의 이해

01 웹 환경의 이해 1 - 26:00 수강완료

02 웹 환경의 이해 2 (Backend) - 27:00 수강완료


섹션 2. 웹 크롤러

03 웹 크롤링 개발환경 - 21:00 수강완료

04 웹 크롤링 Beautiful Soup VS Scrapy - 43:00 수강완료


섹션 3. Scrapy 를 이용한 웹 크롤링 구현하기

05 웹 데이터 저작권 및 사이트 정책 - 14:00 수강완료

06 웹 크롤링 프레임워크 Scrapy 구조 분석하기 - 13:00 수강완료

07 Scrapy 를 이용해 클리앙, 보배드림 크롤링 하기 실습 - 45:00 수강완료




웹크롤링 강좌 수강평


파이썬 크롤링 강좌 실습하면서 개인서버에 도커를 써서 관련 환경 세팅뒤에 강좌 실습해보았습니다.

현재 수강완료하였으며, 전체적으로 크롤링에 대한 감을 잡기에 좋은 기초강의입니다.


scrapy라는 것이 프레임워크이기때문에 크롤링 모듈을 실제로 개발하는 것이 아니라, 기능을 조합해서 쓰기만 하면 됩니다. 과거에 PHP로 크롤러를 구현했을때는 라이브러리 없이 직접 구현했었는데요. 본 강의 수강후, 원하신다면 직접 정규식을 이용해 크롤링을 구현해보는것도 좋은 경험이 될 것 같습니다.


git 저장소에 해당 강좌 내용 요약 및 실제 크롤링 소스코드 업로드 해두었습니다. 


https://github.com/12bme/Python-WebCrawling


크롤링할때 가져오는 소스코드 클리앙 부분 최신 화면에 맞추어서 소스코드 변경하였으며,

필터링시 인코딩 문제 있는부분도 수정하여 적용하였습니다.

강좌대로 코드를 따라가다 보면, 파이썬 2.7에서는 한글관련 인코딩 오류가 뜨는데요.


title = sel.xpath('div/div[@class="list-title"]/a[@class="list-subject"]/text()').extract()[0].strip()
item['title'] = title.encode('utf-8')

위처럼 코드 추가하면 해결 가능합니다.