글

라벨이 웹 크롤링인 게시물 표시

14. Python Selenium으로 브라우저 자동화하기 — 동적 웹 페이지 크롤링 완벽 가이드

이미지
처음에는 requests와 BeautifulSoup 조합만으로도 웬만한 페이지는 다 긁어올 수 있어서 크롤링이 정말 쉽다고 생각했어요. 그러다 어느 날, 평소처럼 코드를 돌렸는데 아무리 해도 빈 화면이나 에러 메시지만 출력되더라고요. 브라우저 창에는 뻔히 보이는 데이터가 왜 안 가져와지나 한참을 헤맸죠. 알고 보니 그 사이트가 리액트로 전면 개편되면서 데이터를 JavaScript로 동적 로딩하게 바뀐 거였습니다. 서버에서 받아온 초기 HTML에는 정말로 아무것도 없었던 거죠. 그때 처음으로 화면을 직접 제어해야겠다는 필요성을 느끼고 Selenium을 공부하기 시작했습니다. 이 글에서는 Selenium이 정확히 어떤 상황에서 필요한지, 설치와 기본 설정 방법, 브라우저를 코드로 제어하는 핵심 명령어, 그리고 실전 자동화 예제까지 단계별로 안내해 드리겠습니다. Selenium이 필요한 이유 — requests가 못 하는 것 이전 글에서 배운 requests + BeautifulSoup 조합은 서버가 HTML을 통째로 내려주는 정적 페이지 에서는 잘 동작합니다. 하지만 현대 웹사이트의 상당수는 다릅니다. 페이지를 열면 처음엔 빈 화면이었다가, JavaScript가 실행되면서 데이터가 채워지는 방식입니다. 로그인 후에만 보이는 페이지, 스크롤을 내려야 나타나는 콘텐츠, 버튼을 클릭해야 펼쳐지는 메뉴 — 이 모든 것이 requests 로는 가져올 수 없습니다. HTML을 요청하는 순간엔 아직 데이터가 없기 때문입니다. 비유하자면 이렇습니다. requests 는 식당에 전화로 메뉴판을 팩스로 보내달라 고 요청하는 것입니다. Selenium은 직접 식당에 찾아가서 자리에 앉고, 메뉴를 펼치고, 음식을 주문하는 것 입니다. 실제 손님처럼 브라우저를 조작하기 때문에 JavaScript가 실행된 이후의 완성된 페이지를 그대로 가져올 수 있습니다. Selenium이 적합한 상황 로그인이 필요한 페이지의 데이터 수집 JavaScript로 동...

13.Python으로 웹 크롤링하기 — requests와 BeautifulSoup 입문 가이드

이미지
처음엔 저도 여러분처럼 필요한 데이터를 모으기 위해 수많은 웹사이트를 클릭하며 일일이 복사했습니다. 하지만 반복되는 단순 업무에 지쳐 자동화를 결심했고, 크롤링을 배운 후에는 수백, 수천 개의 데이터를 단 몇 초 만에 수집할 수 있게 되었습니다. 그때의 경험을 바탕으로, 여러분이 겪고 계신 불필요한 시간 낭비를 확실하게 줄여드리겠습니다 이 글에서는 웹 크롤링의 기본 원리부터 requests 로 웹 페이지를 가져오고 BeautifulSoup 으로 원하는 데이터를 추출하는 방법, 그리고 실제로 데이터를 CSV로 저장하는 실전 예제까지 단계별로 안내해 드리겠습니다. 웹 크롤링이란 무엇인가 — 도서관 사서 비유로 이해하기 웹 크롤링(Web Crawling)은 프로그램이 자동으로 웹 페이지에 접속해서 필요한 정보를 수집하는 기술입니다. 비유하자면 도서관 사서 와 같습니다. 내가 직접 책장 사이를 돌아다니며 필요한 책을 찾는 대신, 사서에게 "경제학 관련 책 목록을 전부 뽑아줘"라고 부탁하면 사서가 알아서 정리해 가져다주는 것입니다. 웹 크롤러는 그 사서 역할을 Python 코드로 구현한 것입니다. 웹 스크래핑 vs 웹 크롤링 두 용어가 혼용되지만 엄밀히는 다릅니다. 웹 크롤링 : 여러 페이지를 자동으로 이동하며 링크를 따라다니는 행위 (구글 봇이 하는 일) 웹 스크래핑 : 특정 페이지에서 원하는 데이터만 추출하는 행위 이 글에서 다루는 것은 실질적으로 스크래핑 에 가깝지만, 실무에서는 두 용어를 구분 없이 '크롤링'으로 통칭하는 경우가 많습니다. 크롤링 전 반드시 확인해야 할 사항 ⚠️ 크롤링은 강력한 도구인 만큼 사용에 주의가 필요합니다. robots.txt 확인 : 사이트 주소 뒤에 /robots.txt 를 붙이면 해당 사이트가 크롤링을 허용하는 범위를 확인할 수 있습니다. 이용약관 확인 : 일부 사이트는 자동 수집을 명시적으로 금지합니다. 과도한 요청 금지 : 짧은 시간에 너...

12. Python으로 텔레그램 알림 보내기 — 실시간 알림 자동화 완벽 정리

이미지
 저도 처음에는 주식 시세나 서버 상태를 확인하기 위해 수시로 웹사이트에 접속하곤 했습니다. 하지만 파이썬과 텔레그램을 연동해 중요한 정보가 발생할 때마다 실시간 알림을 받도록 자동화해 두니, 일일이 확인해야 하는 번거로움이 완전히 사라졌습니다. 이 글에서는 VS Code 환경에서 Python을 활용하여 텔레그램 알림을 보내는 방법부터 봇 생성, 채팅 ID 확인, 메시지 전송, 실시간 모니터링 활용 사례, 그리고 자주 발생하는 오류 해결 방법까지 단계적으로 알아보겠습니다. 텔레그램 알림 자동화란 무엇인가 — 내 대신 알려주는 디지털 비서 텔레그램 알림 자동화는 특정 조건이 발생했을 때 Python이 자동으로 텔레그램 메시지를 보내주는 기술입니다. 쉽게 말하면 하루 종일 화면을 지켜보지 않아도 중요한 이벤트가 발생하면 즉시 알려주는 개인 비서와 같습니다. 예를 들어 다음과 같은 상황에 활용할 수 있습니다. 주식 매수 신호 발생 코인 가격 급등락 감지 서버 장애 발생 웹사이트 오류 감지 신규 주문 접수 데이터 수집 완료 직접 확인하지 않아도 필요한 정보가 자동으로 도착하기 때문에 업무 효율이 크게 향상됩니다. 왜 Python과 텔레그램 조합이 인기 있을까 자동화 프로젝트를 진행하다 보면 결국 "결과를 어디로 받을 것인가"가 중요해집니다. 이때 텔레그램은 매우 강력한 선택지가 됩니다. 텔레그램의 장점 무료 사용 가능 API 제공 설치가 간단함 실시간 알림 가능 모바일과 PC 동시 사용 가능 Python의 장점 다양한 자동화 라이브러리 지원 데이터 분석과 연동 가능 웹 크롤링과 결합 가능 서버 모니터링과 연동 가능 두 가지를 결합하면 다양한 자동화 시스템을 빠르게 구축할 수 있습니다. 텔레그램 봇 만들기 텔레그램 알림을 보내기 위해서는 먼저 봇(Bot)을 생성해야 합니다. 봇은 사람이 아닌 프로그램 전용 계정이라고 생각하면 됩니다. BotFather 실행 텔레그램에서 아래 계정을 검색합니다. BotFather 명령어를 입력합니다. /newbot 이후...

11. Python으로 이메일 자동화하기 — SMTP, 첨부파일, 대량 발송까지 완벽 정리

이미지
 처음에는 저 역시 매주 동일한 업무 메일을 수동으로 복사해 발송했습니다. 수신자가 20명을 넘어가면 많은 시간이 소요되었기 때문입니다. 하지만 파이썬 기반의 정기 이메일 자동화 시스템을 구축한 이후, 관련 업무 부담이 획기적으로 감소했습니다. 이 글에서는 VS Code 환경에서 Python을 활용하여 이메일을 자동 발송하는 방법부터 SMTP 설정, 첨부파일 전송, 여러 명에게 대량 발송하는 방법, 그리고 자주 발생하는 오류 해결 방법까지 단계적으로 알아보겠습니다. 이메일 자동화란 무엇인가 — 반복 작업을 대신하는 디지털 비서 이메일 자동화는 사람이 직접 메일을 작성하고 보내는 대신 Python 코드가 자동으로 메일을 발송하도록 만드는 기술입니다. 쉽게 말하면 매일 같은 시간에 같은 업무를 처리해주는 비서 한 명을 두는 것과 비슷합니다. 예를 들어 다음과 같은 업무를 자동화할 수 있습니다. 매일 아침 업무 보고 메일 발송 거래처 견적서 자동 전송 회원 가입 환영 메일 발송 시스템 장애 알림 메일 발송 매출 보고서 자동 발송 예약 확인 메일 자동 발송 특히 반복적인 메일 업무가 많은 경우 업무 시간을 크게 줄일 수 있습니다. 왜 VS Code와 Python 이메일 자동화를 사용할까 VS Code와 Python 조합은 이메일 자동화에 매우 적합합니다. VS Code의 장점 무료로 사용할 수 있습니다. Python 개발 환경 구축이 쉽습니다. 자동 완성 기능을 제공합니다. 디버깅 기능이 강력합니다. 다양한 확장 프로그램을 지원합니다. Python의 장점 문법이 쉽습니다. 이메일 관련 라이브러리가 풍부합니다. 데이터베이스, 엑셀, PDF와 쉽게 연동됩니다. 자동화 업무에 최적화되어 있습니다. Python 이메일 자동화 환경 구축하기 Python 설치 확인 터미널에서 아래 명령어를 입력합니다. python --version 정상적으로 버전이 출력되면 설치가 완료된 상태입니다. VS Code Python 확장 설치 다음 확장 프로그램을 설치합니다. Python P...