inflearn logo
강의

Course

Instructor

Free Python Course (Usage Part 3) - Web Scraping (5 hours)

Today's weather (Naver Weather)

2024.08.28 수요일 기준 날씨 정보 가져오기 소스코드입니다 (참고하세요 : ) )

230

hubhy4600

8 asked

0

개인적으로 만든거다 보니, 부족한 면이 많습니다.

헷갈리시는 분들이나 조금 어렵다고 느껴지는 분들을 위해서 공유해드려요 !

import requests
from bs4 import BeautifulSoup

'''
[오늘의 날씨]
흐림, 어제보다 00도 높아요
현재 00도 (최저 00도 / 최고 00도)
오전 강수확률 00% / 오후 강수확률 00%

미세먼지 좋음
초미세먼지 좋음
'''

def scrape_weather():
    print("[오늘의 날씨]")
    url = "https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=0&ie=utf8&query=%EB%82%A0%EC%94%A8"
    res = requests.get(url)
    res.raise_for_status()
    soup = BeautifulSoup(res.text, "lxml")

    cast = soup.find("p", class_="summary").get_text()

    curr_temp = soup.find("div", class_="temperature_text").get_text().replace("현재 온도", "") # 현재온도
    targets = soup.find_all("li", class_="week_item today")

    min_temp = targets[0].find("span", class_="lowest").get_text() # 최저 온도
    max_temp = targets[0].find("span", class_="highest").get_text() # 최고 온도

    morning_and_afternoon = targets[0].find_all("span", class_="weather_left")

    morning_rain_rate = morning_and_afternoon[0].get_text() #  오전 강수확률
    afternoon_rain_rate = morning_and_afternoon[1].get_text() # 오후 강수확률

    dust_list = soup.find_all("li", class_="item_today")

    pm10 = dust_list[0].get_text() # 미세먼지
    pm25 = dust_list[1].get_text() # 초미세먼지


    # 출력
    print(cast)
    print(f"현재 {curr_temp} ({min_temp} / {max_temp})")
    print(f"강수확률 {morning_rain_rate.strip()} / {afternoon_rain_rate.strip()}")
    print()
    print(f"{pm10.strip()}")
    print(f"{pm25.strip()}")
    print()

if __name__ == "__main__":
    scrape_weather() # 오늘의 날씨 정보 가져오기

python 웹-크롤링 selenium 웹-스크래핑

Answer 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

님의 코드는 Naver로부터 웹 페이지의 HTML을 가져와 BeautifulSoup을 사용하여 웹 스크래핑을 진행하는 파이썬 스크립트입니다. 이 스크립트는 날씨 정보를 추출하여 출력하는 기능을 수행합니다. BeautifulSoup와 requests 라이브러리를 사용하여 웹의 HTML을 파싱하고, 특정 HTML 요소에서 텍스트 정보를 추출하여 현재 날씨, 최저/최고 온도, 강수 확률, 미세먼지 및 초미세먼지 수준을 출력합니다.

웹 스크래핑에 관심이 있으시다면 더 많은 BeautifulSoup의 기능과 선택자를 활용하는 방법, 그리고 HTML 구조가 변경되었을 시 대처 방안 등을 공부해 보시는 것도 좋을 것 같습니다.

질문이 있으시다면 언제든지 문의해 주세요!

selenium 업그레이드됨... 문법도 바뀜

1

286

1

24년, 부동산 퀴즈 코드입니다. 참고하세요!!

0

177

1

git hub에 push할때 user-agent가 노출되도 상관이 없나요 ?

0

185

1

selenium 관련 web push notification 제어 질문

0

569

1

print(soup.a) 태그 값이 None으로 나옵니다.

0

1177

4

soup으로 검색한 버튼 또는 text를 click할때 어떻게 하나요 ?

1

3561

1

웹툰 사이트 body 안에가 안불러져옵니다.

0

677

2

네이버 웹툰을 활용한 BeautifulSoup 강좌에서 인터페이스가 달라졌습나다.

0

993

1

구글 무비 강좌에서요

0

399

0

네이버 IT뉴스 화면 requets.get 에러가 발생합니다ㅜ

0

432

0

23년 2월 7일, 다음 부동산 화면이 다름

0

404

0

네이버 항공권 관련 제가 작성한 코드 조심스럽게 공유해드립니다.ㅜ

7

2525

2

bs4 활용 2-1 질문합니다.

0

505

2

csv파일 깨짐

0

313

0

url 에러? (\UXXXXXXXX escape)

0

310

0

네이버 쇼핑으로 하면 왜 결과가 안 뜰까요?

0

380

0

쿠팡대신 네이버 쇼핑에서하는데, 5개 아이템만 나옵니다.

0

366

0

쿠팡 requests에 오류가 생기네요

0

2905

1

URL 문제

0

389

0

request 설치

0

315

0

from selenium import webdriver ?

0

348

1

네이버웹툰 랭크가 안불러져요...;;

0

299

0

안녕하세요 에러문의드려요

0

216

0

안녕하세요 오류해결부탁드립니다

0

336

0