[크롤링] 파이썬 라이브러리

다나·2023년 6월 16일
1
post-thumbnail

프로젝트에서 필요한 기술 중 하나인 '크롤링'에 대해서 학습하기 전, 가장 적합한 개발 언어를 정하기 위해서 크롤링 언어크롤링 라이브러리에 대해서 조사해보았습니다.


PART 1. 크롤링 언어 조사

먼저, 그 유명한 chatGPT에게 크롤링 언어를 추천해달라고 요청했습니다:)

chatGPT의 선택은 바로 바로 '파이썬'이었습니다!

한번 chatGPT가 파이썬을 선택한 이유를 살펴볼까요??

💡 크롤링을 위해 사용할 수 있는 여러 언어가 있지만, 어떤 언어가 최적인지는 프로젝트의 요구 사항과 개발자의 선호도에 따라 달라집니다. 일반적으로 웹 크롤링에는 Python이 널리 사용되며, 다음과 같은 이유로 인기를 얻고 있습니다.

  1. 다양한 라이브러리와 프레임워크: Python은 웹 크롤링에 유용한 다양한 라이브러리와 프레임워크를 제공합니다. 예를 들어, BeautifulSoup, Scrapy, Selenium 등은 웹 페이지에서 데이터를 추출하고 처리하는 데 도움을 줍니다.
  2. 간단하고 읽기 쉬운 구문: Python은 직관적이고 가독성이 좋은 구문을 가지고 있어, 크롤링 작업을 보다 쉽게 수행할 수 있습니다. 이로 인해 개발과 유지 보수가 간편해집니다.
  3. 풍부한 커뮤니티와 문서: Python은 널리 사용되는 언어로, 크롤링과 관련된 문제를 해결하기 위한 많은 커뮤니티와 문서가 있습니다. 필요한 도움이나 자료를 쉽게 얻을 수 있습니다.

그러나 다른 언어도 웹 크롤링에 사용될 수 있습니다. 예를 들어, JavaScript는 웹 페이지를 동적으로 로드하거나 상호작용하는 경우 유용합니다. Java, Ruby, C# 등도 크롤링에 사용되는 언어 중 일부입니다. 따라서 프로젝트의 요구 사항과 개발자의 경험에 따라 가장 적합한 언어를 선택하는 것이 중요합니다.


PART 2. 크롤링 언어 선택

저는 현재 백엔드를 자바로 개발하고 있어서, 파이썬을 쓸지 자바를 쓸지 고민하고 있었습니다.

따라서 구현할 프로젝트의 요구 사항에 대해 살펴보고, 크롤링 언어를 선택해보고자 했습니다.

저희 프로젝트는 북마크 서비스로 해당 웹사이트의 url을 받아서 해당 부분에서 원하는 정보를 추출하여 정보를 저장하는 기능이 메인 기능입니다. 이때, 크롤링이 가장 많이 발생할 것으로 예상되기 때문에, 크롤링 서버를 따로 두어서 스프링 서버에 부담을 주지 않게 하도록 하는 것이 좋다고 생각했습니다.

그렇다면 크롤링 서버는 스프링 서버와 분리되기 때문에 크게 자바 언어와 연관되지 않아도 된다고 생각되어, 가장 유명하고 많이 사용되는 파이썬을 선택하였습니다!!


PART 3. 파이썬 라이브러리

  1. BeautifulSoup: BeautifulSoup은 HTML 및 XML 문서를 파싱하고 데이터를 추출하는 데 사용되는 간편하고 유연한 라이브러리입니다. 웹 페이지의 구조를 탐색하고 데이터를 선택적으로 추출할 수 있습니다.
  2. Scrapy: Scrapy는 파이썬으로 웹 크롤러와 스크레이퍼를 만들기 위한 강력한 프레임워크입니다. Scrapy는 웹 페이지를 크롤링하고 데이터를 추출하는 데 사용되며, 요청/응답 처리, 데이터 파이프라인, 중복 요청 관리 등의 기능을 제공합니다.
    1. https://github.com/scrapy/scrapy
      → 47.5K stars, 1.8K watching, 10K forks, 13시간전 commits
  3. Selenium: Selenium은 웹 애플리케이션 테스트를 자동화하기 위해 사용되는 라이브러리입니다. 크롤링 작업에서는 JavaScript로 렌더링되는 동적인 웹 페이지를 스크랩할 때 유용합니다. Selenium은 웹 브라우저를 제어하고 페이지 요소에 대한 상호작용을 시뮬레이션하는 데 사용됩니다.
    1. 웹 컨트롤이 필요한 경우(클릭)에 활용한다. → 웹 브라우저를 여는 과정에서 많은 시간이 소요된다.
  4. Requests: Requests는 간단하고 사용하기 쉬운 HTTP 라이브러리로, 웹 페이지에 HTTP 요청을 보내고 응답을 받는 데 사용됩니다. 크롤링 작업에서는 웹 페이지의 HTML 내용을 가져오는 데 유용합니다.
  5. PyQuery: PyQuery는 jQuery 스타일의 구문을 사용하여 HTML 및 XML 문서를 파싱하고 조작하는 데 사용되는 라이브러리입니다. PyQuery는 CSS 선택자를 사용하여 웹 페이지에서 원하는 데이터를 추출할 수 있습니다.
profile
컴퓨터공학과 학생이며, 백엔드 개발자입니다🐰

0개의 댓글