[파이썬] 벨로그 크롤링 및 최신순 정렬 기능 구현

Lia·2024년 7월 1일
0
post-thumbnail

1. 기능 개발 배경 및 필요성

벨로그에서 원하는 포스트를 검색하고 최신순으로 정렬된 결과를 보고 싶었습니다. 그러나 벨로그는 무한 스크롤 방식을 사용하여 검색 결과를 제공하기 때문에, 모든 결과를 가져오려면 스크롤을 끝까지 내려야 합니다. 벨로그에서 공식 API를 제공하지 않기 때문에, 직접 크롤링을 통해 이 기능을 구현하게 되었습니다.

2. 주요 기능 및 사용된 라이브러리

  • 웹 애플리케이션 프레임워크: Flask

    • 웹 서버를 구축하고, 사용자로부터 검색 키워드를 입력받고 결과를 보여주기 위해 사용했습니다.
  • 웹 브라우저 자동화: seleniumwebdriver_manager

    • selenium은 웹 브라우저를 자동화하여 벨로그 페이지를 탐색하고, webdriver_manager는 크롬 드라이버를 관리하는 데 사용했습니다.
    • 크롬 브라우저를 헤드리스 모드로 실행하여 사용자 화면을 띄우지 않고 백그라운드에서 작업을 수행합니다.
  • HTML 파싱: BeautifulSoup

    • BeautifulSoup을 사용하여 가져온 웹 페이지의 HTML을 파싱하고, 필요한 데이터를 추출했습니다.
  • 비동기 처리: concurrent.futures

    • 비동기적으로 웹 페이지를 가져와서 크롤링 속도를 향상시켰습니다.
  • 날짜 및 시간 처리: datetime

    • 포스트의 날짜 정보를 처리하고, 최신순으로 정렬하는 데 사용했습니다.
  • 무한 스크롤 처리: selenium

    • selenium의 자바스크립트 실행 기능을 사용하여 페이지의 끝까지 스크롤을 반복했습니다.

3. 문제점 및 향후 개선 사항

  • 로딩 시간: 검색 결과가 많아질 경우 로딩 시간이 길어지는 문제가 있습니다. 이를 해결하기 위해 상위 10개 결과만 가져오거나, 페이지네이션을 도입할 수 있습니다.

가끔은 이렇게 다른 개발 (?) 같은 것들을 할 때 재밌다.
프론트엔드.. 언어들은.. 정말 하나하나 다 알아야하고 다 내것이어야만 하고
파이썬 외 나머지는 나의 개발 숨구멍,, 암튼간에. 재밌다 파이썬 ㅋㅋ
그리고 고맙다 챗GPT 넌 나의 단짝친구. 그리고 이제 정말 블로그마냥 써볼까한다. 아자아자 !

profile
https://lia-portfolio.vercel.app/

0개의 댓글