웹 스크래핑 언어에서 파이썬은 절대적인 위치를 차지하고 있습니다.

파이썬은 일단 배우기 쉽고, 웹 스크래핑에 필요한 라이브러리도 충분하기 때문에 관련 일이 필요할때 가장 먼저 떠오르는 언어라고 할 수 있습니다.

 

그러면 웹을 긁어다가 파싱을 하려면 파이썬을 꼭 배워야 할까요?

물론 배우면 좋겠지만, 다른 프로그래밍 언어를 할 줄 아는 사람이라면 굳이 그럴 필요가 없을 수 있습니다.

그 이유는 파이썬보다 더 효율적인 스크래핑 언어들이 있기 때문입니다.

 

웹 스크래핑, 웹 크롤링, 파싱 서로 좀 다른 개념이다

스크래핑에 파이썬보다 더 효과적일 수 있는 언어들을 살펴보기에 앞서, 우리가 혼용해서 쓰는 명칭에 대해서 잠시 알아보겠습니다.

보통 다들 찰떡같이 알아듣지만, 좀 더 명확한 정의를 위해서 잠시 각 명칭의 개념을 알아보겠습니다.

 

1. 웹 스크래핑(web scraping)

어린 시절 패션 잡지나, 자기가 좋아하는 분야의 책자에서 원하는 정보 또는 이미지를 잘라내어 공책이나 스케치북에 붙이던 시절이 있습니다.

우리는 이런 행위를 스크랩이라고 불렀습니다.

이러한 단어의 기원을 바탕으로 웹에서 돌아다니다가 내가 필요한 정보만 발췌하는 것을 우리는 web scraping이라고 부르는 것입니다.

 

2. 웹 크롤링 (web crawling)

crawl 이라는 단어는 기어다니는 것을 말합니다.

즉 웹 크롤링은 여러 웹페이지를 돌아다니면서 각 웹 페이지를 수집 및 분류 그리고 색인(인덱싱이라고 하죠)하는 작업을 이야기 합니다.

 

3. 파싱 (parsing)

파싱은 단어를 그대로 해석하면 구문 분석입니다.

웹 페이지를 긁어다가 해당 페이지의 구문을 분석을 하는 과정을 말합니다.

 

웹 스크래핑, 웹 크롤링, 웹 파싱은 비슷하지만 조금 느낌이 다르면서 서로 작업을 같이 병행하는 오묘한 관계에 놓이는데요.

웹을 크롤링(돌아다니면서)하면서 웹 페이지를 파싱해서 스크래핑 한다고 생각하면 좀 더 쉽지 않을까 싶습니다.

 

파이썬보다 더 효율적인 웹 스크래핑 언어 TOP3

그럼 이러한 작업을 하는데 파이썬보다 더 효율적이라는 언어들을 살펴보겠습니다.

 

1. PHP

 

전문가들은 PHP가 웹 스크랩에 가장 효과적인 언어라고 말합니다. PHP 자체가 웹개발에 특화된 언어이기 때문일 수 있는데요.

Beautiful soup라는 강력한 스크래핑 라이브러리가 PHP를 지원하지 않기 때문에 불편한 것이 아니냐라고 할 수 있지만, PHP에는 Simple html dom 이라는 스크랩 라이브러리가 있습니다.

 

cURL을 이용해서도 스크래핑은 가능하지만, 이미 만들어진 라이브러리들이 많이 있으니 고생할 필요가 없습니다.

PHP에는 simple html dom 이외에도 Guzzle, Goutte, hQuery, Requests, Buss, ReactPHP 등 다양한 라이브러리들이 있고, 각각 장단점들이 존재하니 본인에게 맞는 것을 찾아서 사용하면 되겠습니다.

 

2. node.js

 

자바스크립트 기반의 언어인 nodejs로도 웹 스크래핑이 가능합니다.

비동기 방식으로 웹 페이지를 모두 긁어다가 스크랩에 유용한 라이브러리들과 정규표현식을 이용해서 원하는 데이터를 추출해냅니다.

 

대표적인 노드의 스크래핑 라이브러리로는 Cheerio, JSDom, puppeteer, playwright 등이 있습니다.

 

3. c++

 

프로그래밍 언어로서 C++ 항상 효율적이라는 수식어가 따라다닙니다.

웹 스크랩에서도 마찬가지인데요. 

문제는 비용이라는 부분이 있기 때문에 전문적인 조직에서 데이터 추출을 위해 수행하는 웹 크롤링이 아니라면 추천하지는 않는다고 합니다.

 

C++ 에서 libcurl 라이브러리를 이용해서 웹 페이지를 가져온 다음 DOM 트리를 구성하지 않고 특정 항목을 스크랩하기 좋으며, 스크래퍼 병렬화도 가능하다고 합니다.

 

파이썬이 좋지만 꼭 파이썬일 필요는 없다

지금까지 전문가들이 꼽는 웹 스크래핑 언어에 대해서 알아보았는데요. 이 외에로 루비 같은 언어로도 가능합니다.

하지만, 위 내용을 보시고 "말도 안돼! 파이썬이 더 편리한데 무슨소리야?"라고 할 수 있습니다.

 

맞습니다. 현재 웹 스크랩핑에서 파이썬의 위치는 매우 견고합니다. 

하지만, PHP, C++, nodejs를 할 줄 아는 사람 중에 웹 스크랩을 하고 싶은데 파이썬 언제 배워서 하나? 라고 생각하는 분들도 있습니다.

 

물론, 파이썬으로 웹 스크랩을 하는 것이 엄청나게 큰 지식을 요구하는 것이 아니기 때문에 어불성설이라고 할 수 있지만, 웹 스크랩은 무조건 파이썬일 필요는 없다 라는 의미로 받아들이면 좋겠습니다.

+ Recent posts