[python] 파이썬으로 간단한 웹 스크래퍼 만들기 🕸️

2025. 3. 13. 12:26·프로그래밍/Python

오늘은 파이썬으로 "웹 스크래퍼(Web Scraper)"를 만들어보는 방법을 소개하려고 합니다. 🐍
웹 스크래핑은 인터넷에서 데이터를 자동으로 가져오는 기술로, 뉴스 크롤링, 가격 비교, 데이터 수집 등 다양한 곳에 활용됩니다.
파이썬의 BeautifulSoup 라이브러리를 사용하면 웹 데이터를 손쉽게 추출할 수 있습니다.
지금부터 간단한 예제를 함께 만들어볼까요? 🚀

준비물

웹 스크래핑을 시작하기 전에 필요한 환경과 라이브러리를 설치해야 합니다.
1️⃣ Python 설치
파이썬이 설치되어 있지 않다면 Python 공식 사이트에서 설치해주세요.

2️⃣ 필수 라이브러리 설치
아래 명령어를 실행해 필요한 라이브러리를 설치합니다.

pip install requests beautifulsoup4
pip install requests


3️⃣ PyCharm 설치
PyCharm 공식 홈페이지에서 통합 개발 환경(IDE)을 설치하세요. 이를 통해 코드를 더 편리하게 작성하고 실행할 수 있습니다.

 

코드 작성 및 실행

아래는 네이버 뉴스에서 제목과 링크를 가져오는 Python 코드입니다.

import requests
from bs4 import BeautifulSoup

# 1. 스크래핑할 URL 설정
url = "https://news.naver.com/"  # 실제 URL로 변경

# 2. 웹 페이지 요청
response = requests.get(url)
if response.status_code == 200:
    # 3. BeautifulSoup으로 HTML 파싱
    soup = BeautifulSoup(response.text, 'html.parser')

    # 4. 클래스명이 'cnf_news_area'인 <a> 태그 선택
    news_links = soup.select('a.cnf_news_area')

    # 5. 제목과 링크 출력
    for idx, link in enumerate(news_links, start=1):
        title = link.select_one('strong.cnf_news_title').text.strip()  # 제목 추출
        href = link.get('href', '링크 없음')  # 링크 추출
        print(f"{idx}. {title} ({href})")
else:
    print(f"HTTP 요청 실패: {response.status_code}")
코드 설명

1️⃣ requests로 웹 페이지 요청
requests.get(url)로 네이버 뉴스 페이지의 HTML 데이터를 가져옵니다. HTTP 상태코드가 200일 때만 크롤링을 진행합니다.

2️⃣ BeautifulSoup으로 HTML 파싱
HTML 코드를 구조적으로 파싱해 데이터를 쉽게 추출할 수 있도록 합니다.

3️⃣ CSS 선택자로 데이터 추출
soup.select('a.cnf_news_area'): 뉴스 링크를 포함하는 <a> 태그를 선택합니다.
link.select_one('strong.cnf_news_title'): 뉴스 제목을 포함한 <strong> 태그를 선택해 텍스트를 추출합니다.

4️⃣ 출력
제목과 링크를 한 줄씩 출력합니다.

실행 결과

 

마무리

이 글에서는 파이썬과 BeautifulSoup을 사용해 네이버 뉴스 제목과 링크를 가져오는 간단한 크롤러를 작성해 보았습니다. 앞으로 추가적인 데이터를 수집하거나 크롤링 결과를 파일로 저장하는 등 다양한 확장 기능을 추가해 보세요.
더 궁금한 점이 있다면 댓글로 남겨주세요! 😊

반응형
저작자표시 비영리 (새창열림)

'프로그래밍 > Python' 카테고리의 다른 글

파이썬 리스트 vs 딕셔너리 차이점 정리: 언제 어떤 자료형을 써야 할까?  (0) 2025.03.18
🏆 Python 개발자라면 꼭 알아야 할 PyCharm 꿀기능 4가지  (2) 2025.03.14
[python] Selenium Errror | ValueError: Timeout value connect was <object object at 0x1034647c0>, but it must be an int, float or None  (0) 2023.10.10
[python] 코인 자동 매매 프로그램 만들기 (4) - 메세지 보내기  (0) 2023.01.03
[python] 코인 자동 매매 프로그램 만들기 (3) - 설정 관리  (0) 2022.06.19
'프로그래밍/Python' 카테고리의 다른 글
  • 파이썬 리스트 vs 딕셔너리 차이점 정리: 언제 어떤 자료형을 써야 할까?
  • 🏆 Python 개발자라면 꼭 알아야 할 PyCharm 꿀기능 4가지
  • [python] Selenium Errror | ValueError: Timeout value connect was <object object at 0x1034647c0>, but it must be an int, float or None
  • [python] 코인 자동 매매 프로그램 만들기 (4) - 메세지 보내기
큐레이트
큐레이트
저의 일상을 기록하는 블로그입니다.
  • 큐레이트
    큐레이트의 기록
    큐레이트
  • 전체
    오늘
    어제
    • 분류 전체보기 (190)
      • 국내여행 (37)
        • 애견여행 (33)
        • 맛집여행 (2)
      • 프로그래밍 (82)
        • C# (24)
        • Python (24)
        • Flutter (5)
        • .NET (4)
        • ASP (7)
        • Html (5)
        • Tomcat (2)
        • typescript (3)
        • etc (8)
      • 일상생활 (71)
        • 다이어트일지 (70)
        • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 복이랑스마트스토어
    • 복이랑블로그
  • 공지사항

    • 블로그 소개
  • 인기 글

  • 태그

    다이어트
    Flutter
    DevExpress
    애견여행
    iis
    운동일지
    Python
    제주도
    체중기록
    자동매매
    제주도여행
    자동화
    제주도애견동반여행
    티스토리챌린지
    헬스
    국내여행
    HTML
    FastAPI
    오운완
    C#
    다이어트일지
    애견동반여행
    오블완
    애견동반
    일상생활
    식단관리
    파이썬
    pt
    식단
    다이어트 일지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
큐레이트
[python] 파이썬으로 간단한 웹 스크래퍼 만들기 🕸️

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.