파이썬으로 웹 크롤러 만들기(2판)
프로그래밍을 배웠다면 이제 배운 프로그래밍을 어디에 사용할까? 머신러닝, 인공지능? 아마 많은 경우 귀찮은 작업을 수행하기 위해 일반적인 사람들이 배우는 경우가 많다. 그렇다면 이렇게 귀찮은 작업을 한 번에 할 수 있는 방법은 다양하다. 인터넷의 웹에 있는 자료를 가져오는 것 바로 웹 스크래핑이다. 프로그래머와 일반인들 사이에 가장 재미있고 가장 흥미로운 주제가 바로 웹 스크래핑이다. 일반적인 사람이라면 누구나 인터넷을 이용하고 인터넷에서 자료를 찾기 때문이다.
이론적으로 웹 스크래핑이나 데이터를 수집하는 작업을 웹 크롤링이라 하고 이러한 프로그래밍을 웹 크롤러라고 한다. 대표적으로 파이썬을 이용해 이러한 웹 크롤러를 많이 작성하고 있다. 이 책은 이렇게 파이썬을 이용해 웹 크롤러를 만드는 방법을 상세히 설명하고 있다. 오늘날 웹에 존재하는 거의 모든 종류의 데이터를 수집, 변형, 사용할 수 있는 상세한 가이드로 이 책이 제공하고 있다. 1부에서는 웹 스프래핑과 웹 크롤링에 대해 깊이 설명하고 책고 실습에서 사용할 라이브러리에 중점을 준다. 2부에서는 독자가 웹 스크패링을 만들 때 유용한 추가적인 주제에 대해 다룬다.
1부에서부터 BeautifulSoup이라는 크롤링에 필수적인 라이브러리를 설치하고 간단하게 이용해본다. 위 사진과 같이 Crwaler 클래스의 코드를 살펴볼 수 있다. 실제 파이썬 관련 코드는 모두 오픈되어 있으니 github와 같은 사이트 및 공식웹에서 모두 확인할 수 있다. 실제 구문을 보면 그렇게 복잡하지 않다. 사이트 주소를 입력해 파싱하는 것이다. 즉 원하는 형태로 쪼갤 수 있게 하는 것이다.
웹 언어 외에도 CSV, TXT파일 등 많은 형태의 자료를 파싱하고 분석할 수 있지만, 대부분의 인터넷의 자료를 가져오는 경우가 많기 때문에 HTML 분석을 많이한다. 실제 HTML은 마크업 언어로 다양한 태그가 계층적으로 이뤄져있다. 따라서 HTML언어의 크롤링의 핵심은 바로 이 태그를 분석하는 것이다. 많은 경우 태그의 이름을 이용해 해당 태크가 있는 문장을 검색해 이를 출력하거나 저장하거나 이용할 수 있다.
이 책은 그 외에도 다양한 크롤링 방법을 제공한다. 자연어를 읽고 이를 분석하는 방법은 NLTK라는 자연어 툴킷을 사용한다. 다양한 API를 통해 받아온 데이터를 분석하는 방법도 알아본다. 실제 이렇게 웹의 데이터를 파싱하고 분석하는 일련의 과정들이 단순히 자료를 만들고 업무 자동화에만 사용된다면 큰 오산이다. 실제로 이는 알고리즘 관점에서 좀 더 확장된다면 머신러닝과 딥러닝의 전반적인 작업이 될 수 있다. 따라서 이후 파이썬으로 인공지능을 배우고자 하면 먼저 파싱과 분석에 대해 이 책을 통해 먼저 익히길 추천한다.
파이썬의 기본적인 이해가 끝났다면 이렇게 다양한 프로젝트와 여러 라이브러리를 이용하는 예제를 익히고 실제로 사용해도 큰 문제가 없을 정도의 코드 및 프로그램을 작성하고 알아보는 과정을 거쳐보자.
'Book review' 카테고리의 다른 글
[서평]모던 웹을 위한 HTML5+CSS3 바이블 3판 (0) | 2019.07.08 |
---|---|
[서평]누가 내 말 좀 들어줘 # 소설 # 누가내말좀들어줘 (0) | 2019.07.01 |
[서평]OpenCV 4로 배우는 컴퓨터 비전과 머신 러닝 (0) | 2019.05.10 |
[서평]당신의 행복은 해킹당했다 # 경제/경영 # 당신의행복은해킹당했다 (0) | 2019.04.11 |
[서평] 이것이 자바다. 신용권의 Java 프로그래밍 정복 (0) | 2019.04.03 |