본문 바로가기
Python

웹 스크래핑(Scraping)예제 검색할 키워드 입력

by 헬로제이콥 2025. 5. 19.

웹 스크래핑은 크게 두 단계로 진행된다고 생각하시면 돼요.

  1. 웹페이지 접속: 웹 스크래핑 프로그램은 마치 웹 브라우저처럼 특정 웹사이트에 접속해요.
  2. 정보 추출: 접속한 웹페이지에서 필요한 정보를 찾아내고 추출해요. 예를 들어, 온라인 쇼핑몰에서 특정 상품의 가격 정보만 뽑아낼 수도 있고, 뉴스 사이트에서 기사 제목과 내용을 가져올 수도 있죠.

왜 웹 스크래핑을 사용할까요?

웹 스크래핑은 다양한 분야에서 유용하게 활용돼요. 몇 가지 예시를 들어볼게요.

  • 시장 조사: 경쟁사의 상품 가격을 비교하거나, 특정 산업의 트렌드를 파악하는 데 사용될 수 있어요.
  • 데이터 분석: 수많은 웹사이트에서 대량의 데이터를 수집해서 분석하고, 새로운 인사이트를 얻는 데 활용될 수 있죠.
  • 콘텐츠 수집: 뉴스 기사, 블로그 게시물 등 다양한 웹 콘텐츠를 자동으로 수집하여 개인 또는 기업의 데이터베이스를 구축하는 데 사용될 수 있어요.
  • 부동산 정보: 특정 지역의 매물 정보나 전월세 가격을 자동으로 수집하여 시세 파악에 활용할 수도 있습니다.

주의할 점

웹 스크래핑은 편리한 기술이지만, 몇 가지 주의할 점이 있어요.

  • 웹사이트의 이용 약관: 많은 웹사이트는 스크래핑을 금지하거나 제한하는 이용 약관을 가지고 있어요. 스크래핑을 하기 전에 해당 웹사이트의 약관을 확인하는 것이 중요해요.
  • 서버 부하: 너무 많은 요청을 보내면 웹사이트 서버에 부담을 줄 수 있어요. 적절한 간격을 두고 요청을 보내는 것이 매너입니다.
  • 개인 정보 보호: 개인 정보가 포함된 데이터를 무단으로 수집하거나 사용하는 것은 법적인 문제가 될 수 있으니 주의해야 해요.

결국 웹 스크래핑은 인터넷에 흩어져 있는 방대한 정보를 효율적으로 모으는 강력한 도구라고 할 수 있습니다. 이해하는 데 도움이 되셨을까요?

 

예제 문제 (검색할 키워드 입력)

# step1.프로젝트에 필요한 패키지 불러오기
from bs4 import BeautifulSoup as bs
import requests

# step2. 검색할 키워드 입력
query = input('검색할 키워드를 입력하세요: ')

# step3. 입력받은 query가 포함된 url 주소(네이버 뉴스 검색 결과 페이지) 저장
url = 'https://search.naver.com/search.naver?where=news&sm=tab_jum&query='+'%s'%query

# step4. requests 패키지를 이용해 'url'의 html 문서 가져오기
response = requests.get(url)
# html_text = response.text # 이 변수는 사용되지 않으므로 제거해도 됩니다.

# step5. beautifulsoup 패키지로 파싱 후, 'soup' 변수에 저장
soup = bs(response.text, 'html.parser')

# HTML 내용을 'abc.html' 파일로 저장
filename = "abc.html" # 저장할 파일 이름을 'abc.html'로 고정

# 파일을 쓰기 모드('w')로 열고 (인코딩을 'utf-8'로 지정)
with open(filename, 'w', encoding='utf-8') as f:
    # soup 객체의 내용을 문자열로 변환하여 파일에 씁니다.
    f.write(soup.prettify()) # 또는 str(soup) 사용

print(f"HTML 내용이 '{filename}' 파일에 저장되었습니다.")