반응형
사이트의 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을 이용하여 사이트의 파싱을 할 수 있습니다.
반응형
'Server' 카테고리의 다른 글
Node.js에서 Pug 모듈 사용하기 (0) | 2024.02.26 |
---|---|
nodejs 에서 py 파일을 읽어와서 실행한 결과를 string 으로 가져오는 법 (0) | 2024.01.27 |
Windows React 개발환경 구축 (0) | 2019.12.05 |
스프링부트 lombok builder 오류 해결 (2) | 2019.04.19 |
thymeleaf 날짜 데이터 출력하기 (0) | 2019.03.23 |
댓글