본문 바로가기

프로젝트 목록/ParseWEB

ParseWEB [0] 프로젝트 개요

프로젝트 목적

해당 프로젝트는 크몽과 같은 외주 사이트에서 영감을 얻어서 진행할 프로젝트다.

크롤링이나 파싱으로 검색을 해보면 5,000원부터 시작해서 300,000원 이상까지 다양한 가격대로 웹 크롤링 및 파싱기를 판매하고 있는 것을 볼 수 있었다.

다른 사람들이 파싱기를 구현할 때 어떻게 구현했는지는 구매를 해보지 않았으므로 알지 못한다.


내가 파싱기를 구현한다고 하면 기본적인 UI와 자주 사용하는 기능(브루트포스 등)을 구현하여 프로그램의 틀은 동일하게 유지를 시킨다. 그리고 사이트 파싱 로직만 사이트 별로 제작해둔다면 해당 파일을 불러오는 방식으로 파싱기를 동작시킬 수 있지 않을까라는 생각에서 출발하였다.


이렇게 하면 기본 프로그램과 간단한 파싱 예제를 포함해서 판매를 하고 구매자가 요구하는 파싱기를 번들 형식으로 판매를 하면 된다.

직접 파싱기 모듈을 제작할 수 있도록 한다면 나중에 구매자가 필요한 부분을 직접 구현할 수도 있다.

그리고 구현이 어려운 경우에 대해서는 판매자에게 요구를 하면 판매자는 해당 파싱기를 구현해서 돈을 받고 판매하는 식으로 할 수 있다.


이 프로젝트에서는 직접 파싱기를 만들어보고 모듈화해서 배포하는 것까지 구현하고자 한다.

참고로 해당 프로젝트에서는 소스 코드를 전부 공개하지는 않으려고 한다. 또한 따로 명시하지 않는 한 소스 코드는 개인 용도로만 사용을 하고 블로그나 타 사이트에 올리지 않기를 원한다. 파싱에 대한 요청도 받지 않으려고 한다.

개발 환경 설정

Chrome

크롬 브라우저를 사용하는 이유는 Network 탭에서 해당 사이트에서 보내는 요청들을 모두 캡쳐할 수 있고, DOM에서 원하는 원소가 어디에 위치하는지 쉽게 알아낼 수 있기 때문에 사용한다.

보통 컴퓨터에 기본으로 많이 설치하고 설치 방법도 간단하기 때문에 여기에선 다루지 않는다.

Python3 설치

Python은 컴퓨터 언어 중 하나로 자동화 프로젝트나 파싱을 하는데 많이 사용한다.

버전은 Python2와 Python3로 나뉘는데, Python2의 경우 지원이 종료되기 때문에 여기에선 Python3로 사용하려 한다. 설치 링크

설치하기가 어려운 사람은 다음 링크를 참고하도록 한다.

BeautifulSoup 모듈 설치

BeautifulSoup은 Python에서 HTML 파싱을 쉽게 할 수 있도록 해주는 모듈 중 하나이다.

해당 모듈을 사용하면 웹사이트를 쉽게 파싱을 할 수 있다. 단점이 있다면 해당 원소를 가지고오도록 하기 위해 HTML에 대한 기본적인 이해가 있어야 한다.


설치 방법은 파워쉘이나 명령 프롬프트에서 아래 명령어를 사용하면 된다.

python -m pip install bs4

requests 모듈 설치

requests 모듈은 웹사이트 요청을 쉽게 할 수 있도록 해주는 모듈 중 하나이다.

물론 기본으로 깔린 urllib 모듈도 충분히 괜찮긴 하지만 파일 업로드 등과 같은 기능은 할 수 없다.

requests 모듈을 설치하면 이러한 것들을 간단한 명령어 몇 줄만으로도 끝낼 수 있다.


설치 방법은 파워쉘이나 명령 프롬프트에서 아래 명령어를 사용하면 된다.

python -m pip install requests

IDE 설치

메모장이나 Python을 설치했을 때 기본으로 제공하는 IDLE를 사용해도 무방하나 기능이 부족한 면이 있다.

따라서 필자는 PyCharm을 추천한다. PyCharm은 JetBrains사에서 만든 IDE로 Python을 중점으로 지원하는 IDE이다. 따라서 Python에 관해서는 매우 강력한 기능을 제공하고 있다고 할 수 있다.

전용 IDE를 설치하는 것이 꺼려진다면 Sublime Text, Atom, VS Code 등을 사용해도 무방하다.

앞으로의 방향

개발 환경 설정은 이미 끝났으니 실제 운영하고 있는 사이트를 파싱하는 과정을 살펴보도록 하겠다.

자주 사용하는 사이트에서 필요한 내용을 가져오는 것을 구현할 예정으로 필자가 가지고 있었던 크롤링 팁도 소개할 예정이다.

로그인 없이 데이터를 간단하게 가져올 수 있는 방법부터 시작해 로그인이 필요한 서비스에서 데이터를 가져오는 방법까지 해서 여러 방식을 소개하려고 한다.

최종적으로는 해당 크롤링 및 파싱 로직을 모듈화하는 것으로 프로젝트를 마무리하려고 한다.