Server

사이트의 HTML을 파싱하는 방법 #1

클레인 2024. 1. 7.
반응형

사이트의 HTML을 파싱하기 위해서는 BeautifulSoup 라이브러리와 requests 모듈을 사용할 수 있습니다.

 

사이트의 데이터를 가져오기 전에 해당 사이트에서 크롤링 또는 스크래핑을 허용하는지 확인해야 합니다.

합법적인 방법으로만 웹사이트의 데이터를 사용해야 합니다.

 

아래는 간단한 polling을 통해 사이트의 HTML을 파싱하는 예제 코드입니다.

코드를 실행하려면 requests와 beautifulsoup4 라이브러리를 설치해야 합니다.

import requests
from bs4 import BeautifulSoup
import time

def poll_website(url, polling_interval_sec, max_polling_attempts):
    attempts = 0
    while attempts < max_polling_attempts:
        try:
            # 웹페이지에 GET 요청 보내기
            response = requests.get(url)
            
            # 응답이 성공적으로 왔을 경우
            if response.status_code == 200:
                # HTML을 BeautifulSoup으로 파싱
                soup = BeautifulSoup(response.text, 'html.parser')
                
                # 원하는 작업 수행 (여기서는 간단히 제목 출력)
                title = soup.title.text
                print(f'Title: {title}')
                
                # 성공적으로 파싱하면 루프 종료
                break
            
            # 응답이 성공적이지 않은 경우
            else:
                print(f"Failed to retrieve data. Status code: {response.status_code}")
                
        except Exception as e:
            print(f"An error occurred: {str(e)}")
        
        attempts += 1
        time.sleep(polling_interval_sec)

    print("Polling completed.")

# 예제: 네이버 실시간 검색어 순위
poll_url = "https://www.naver.com"
polling_interval = 5  # 5초마다 한 번씩 polling
max_polling_attempts = 3  # 최대 3번까지 polling 시도

poll_website(poll_url, polling_interval, max_polling_attempts)

 

위 small code 는 주어진 URL에 대해 일정 간격으로 polling을 시도하고,

성공적으로 데이터를 가져오면 해당 데이터를 출력합니다.

위의 예제는 네이버 홈페이지의 타이틀을 가져오는 간단한 예시입니다

 

위와 같은 방법으로  BeautifulSoup 라이브러리와 requests을 이용하여 사이트의 파싱을 할 수 있습니다.

반응형

댓글