몇 년 전에 카카오에서 함께 일한 charsyam(강대명 님 영어 이름)은 참 파이썬을 잘 했다. 물론 스칼라, 자바 모두 잘했다.


그런데. 루비로 만들어진 스크래퍼를 잘 다뤘다. 스크랩 관련 코드를 살펴보고 charsyam과 얘기하고 ㅎㅎ


og라는 것도 첨 알게 되고. 백엔드만 하다 보니 잘 모르는 것도 많았다.


특이한 timeout 현상에 대해서 charsyam과 얘기할 때 참 희열을 느꼈다. 




open api가 없으면 스크래핑해서 먼가를 구축하고 서비스 메싱 사용해서 원하는 것을 만들어내거나.


실제 스크래핑에 대한 법적 이해, 실제 구현에 대한 Scrapy 라이브러리를 살펴보니. 잼난다. 




파이썬 개발을 종종 하고 있지만, 스크래핑은 첨이라 즐거운 공부가 된 것 같다. 






이 책은 예시 싸이트를 두어서 테스트하기 좋다. 현행화가 되지 않은 부분은 코드를 수정해서 잘 동작되도록 했다. 


스크래핑에 대한 좋은 책이라 생각된다.





http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9791161752525&orderClick=LAH&Kc=#N






★ 옮긴이의 말 ★

내가 카카오스토리 개발팀에 일할 때 스크래퍼 툴에 이상한 매력을 느꼈다. 스크래퍼 툴을 사용해 웹을 스크래핑할 때 특정 태그 정보와 사진을 추출해서 사용자들이 스크랩 정보를 글을 작성하기 전에 미리 알 수 있게 하는 매력, 왠지 마력처럼 느껴지기도 했다.


도대체 내부는 어떻게 동작하는 걸까? 옆에서 같이 스크래퍼 툴의 코드를 고쳐보기도 하고 이슈가 생기면 동료들과 같이 보기도 했다. 그렇기 때문에 이 책을 번역하게 돼 매우 기뻤다.
우리가 자주 사용하는 SNS(카카오톡, 페이스북, 카카오스토리, 라인)를 살펴보면, 링크를 보낼 때 링크만 보내지 않는다. 적당한 정보와 사진이 같이 대화창 또는 피드에 노출된다.
사실 스크래핑 기술을 알면 쉽게 구현할 수 있지만 스크래핑 기술을 배우고 싶어도 서버 관리자가 스크래핑 기술을 쓰지 못하도록 제한을 거는 경우가 많다. 그래서 이 책은 정말 특별하다. 저자가 운영 중인 예시 웹 사이트를 기반으로 웹 스크래핑 기술을 배울 수 있기 때문에 마음껏 예시를 테스트할 수 있다.

이 책은 크롤링과 스크래핑이 무엇인지 설명하고 법적 이슈를 다루며 시작한다. 웹 사이트에서 데이터를 스크래핑할 수 있는 최고의 가이드를 제공한다. 저자가 운영하는 예시 웹 사이트를 기반으로 스크래핑 테스트를 진행할 수 있다. 정적 웹 페이지에서 데이터를 추출하는 방법, 레디스와 파일을 캐싱으로 사용하는 방법, 동적 스크래핑 및 정교한 크롤러를 개발하는 방법을 다룬다. 그리고 PyQt와 Selenium을 사용하는 방법, 캡차(CAPTCHA)로 보호되는 복잡한 웹 사이트에 폼을 제출하는 방법, 병렬 라이브러리를 사용하는 방법, Scrapy 라이브러리로 클래스 기반 스크래퍼를 생성하는 방법을 다룬다.
이 책은 독자가 파이썬에 대한 기본 지식이 있다고 가정하기 때문에 파이썬 언어에 대한 설명은 없다. 하지만 Golang, 자바, 스칼라 등과 같은 언어에 대한 지식이 있다면 도전해 볼 수 있을 것이다.
원서의 버전은 파이썬 3.4 기준이었지만 번역서에서는 최신 버전인 파이썬 3.7과 바뀐 예시 사이트 URL을 기반으로 예시 소스를 일부 변경했다.

이 책에서 스크래핑에 대한 지식을 많이 얻기를 바란다. 



* 원서 링크





https://www.packtpub.com/big-data-and-business-intelligence/python-web-scraping-second-edition




Python Web Scraping - Second Edition

Katharine Jarmul, Richard Lawson

7 customer reviews








Python Web Scraping: Hands-on data scraping and crawling using PyQT, Selnium, HTML and Python, 2nd EditionPaperback – May 30, 2017




Posted by 김용환 '김용환'

댓글을 달아 주세요