메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[리뷰] 파이썬으로 웹 크롤러 만들기(2판)

kairo***

|

2019-04-17

파이썬으로 웹 크롤러 만들기

웹 어디서든 내가 원하는 데이터를 쏙쏙쏙

  • 저자 : 라이언 미첼
  • 번역 : 한선용
  • 출간 : 2016-12-01

 

몇년 전, 학부 졸업 프로젝트로 '국회의원 추천 시스템'을 만든 적이 있다. 당시 국회의원 관련된 뉴스 기사나 정보를 수집할 필요가 있었는데, 학부생일때는 파이썬을 사용할 줄 몰랐고 마침 R을 배우고 있어서 rvest와 xml 패키지를 사용해 크롤링을 진행했다. R을 통해 정적인 페이지나 복잡하지 않은 내용은 쉽게 크롤링 할 수 있었지만, 아무래도 일반 프로그래밍 언어에 비해 제한되는 사항이 많았던 것 같다. 특히 자바스크립트로 생성된 페이지의 경우 rvest를 통해 크롤링 할 수 없어 아쉬움을 남긴 채 프로젝트를 끝마친 기억이 있다.



졸업 후 최근까지 파이썬을 공부하면서 파이썬으로 크롤링을 해보고 싶은 생각이 있었는데 마침 필요한 책이 손에 들어왔다. 기본적인 웹 스크레이퍼 제작부터 문서 파일 처리, 텍스트와 이미지 인식, 병렬 웹 크롤링까지 다루지 않는 부분이 없는 방대한 내용의 책이었다. 특히나 최근에 웹 프로그래밍에 관심을 가지게 되면서 웹의 원리에 대해 열심히 공부하던 중이었는데, 이 책을 통해 웹 상에서 요청하고 응답받는 여러 가지 방식을 실습을 통해 체득하게 되었다.

이 책의 저자는 웹 크롤링을 진행하면서 막히는 부분에 대해 먼저 경험한 사람으로서 그 해결방법들을 아주 자세하게 이야기하고 있다. 특히 Chapter 10의 '폼과 로그인 뚫기' 부분에서는 로그인 인증을 우회하거나 CAPTCHA를 뚫는 방법에 대해서 설명하면서, 이러한 부분이 보안 관점에서 어떻게 위협이 될 수 있고 취약점이 되는지까지 상세히 설명하고 있다. 웹 사이트 크롤링을 진행함에 있어서 법적인 이슈를 따로 생각해 본 적이 없었는데, 저자는 책 마지막 Chapter를 통해 윤리적, 법적 이슈가 생길 가능성에 대해 경고하고, 일반적으로 웹 크롤링에 적용되는 법을 어긴 사례를 소개해주고 있어서 재미있게 읽을 수 있었다.     

Chapter 16 '병렬 웹 크롤링' 대해 언급하면서 리뷰를 마치고 싶다. 지금 회사에서 하고 있는 업무에는 딱히 병렬 프로그래밍을 쓸 일이 없어서 학부 때 배웠던 멀티스레드, 멀티프로세스 실행에 대한 개념이 잊혀지고 있었다. 그런데 이 책을 통해 병렬 웹 크롤링에 대한 내용을 읽으면서 병렬 스레드/프로세스 실행 개념을 다시 잡아보게 되어서 개인적으로 만족하고 있다.

저자는 다음과 같은 상황에서 병렬 웹 크롤링이나 병렬 스레드/프로세스 실행이 더 나을 수 있다고 이야기한다.

● 여러 소스(원격 서버)에서 데이터를 수집하는 경우
● 수집한 데이터에 이미지 분석이나 OCR처럼 길고 복잡한 작업을 수행해야 하고, 이 작업을 수행하면서 동시에 데이터를 가져올 수 있는 경우
● 매 쿼리에 대해 비용을 지불하는 대규모 웹 서비스에 데이터를 수집하거나, 사용 계약의 범위 안에서 다중 연결을 이용하는 경우

결론적으로 이 책을 요약하자면, 웹에서 내가 원하는 자료를 찾기 위해 문서에서 데이터를 읽고 추출하고 가공해서 분류하고 저장하는 방법에 대해 설명하고 있는 책이다. 두껍지 않은 책이었지만 다루고 있는 내용은 적지 않아서 실습을 통해 시간을 들여 익숙해져야 할 것 같다. 추후에 파이썬을 통해 관심 있는 주제로 크롤링 프로젝트를 진행해보고 싶다.
 
닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?