반응형




이번 영상에서는 뷰티플수프를 사용하여 기상청의 동네예보를 웹크롤링합니다.




from urllib.request import urlopen
from bs4 import BeautifulSoup


html = urlopen("https://www.weather.go.kr/weather/forecast/timeseries.jsp"

soup = BeautifulSoup(html, "lxml")



table = soup.find("table", class_="forecastNew3")

tr = table.tbody.tr
for t in tr.children:
if t.name == 'th':
if t['scope'] == 'colgroup':
num = int(t['colspan'])

for i in range(num):
print(t.get_text(), end = ' ')


tr = tr.next_sibling.next_sibling


print('@시각')
for t in tr.children:
if t.name == 'td':
for i in t.contents:
if i.name =='p':
print(i.get_text(), end=' ')
print('\n')



tr = tr.next_sibling.next_sibling



print('@날씨')
for w in tr.children:
if w.name == 'td' and len(w.contents) > 0:
print(w['title'], end= ' ')
print('\n')



tr = tr.next_sibling.next_sibling



print('@강수 확률')
for w in tr.children:
if w.name == 'td' and len(w.contents) > 0:
print(w.contents[0], end=' ')
print('\n')



tr = tr.next_sibling.next_sibling



print('@강수량')
for w in tr.children:
if w.name == 'td' and len(w.contents) > 0:
num = int(w['colspan'])

for i in range(num):
print(w.contents[0].strip(), end=' ')
print('\n')



tr = tr.next_sibling.next_sibling


print('@최저/최고 기온')
for w in tr.children:
if w.name == 'td' and len(w.contents) > 0:
num = int(w['colspan'])

for i in range(num):
print(w.contents[0].get_text(), end='/')
print(w.contents[2].get_text(), end=' ')
print('\n')



tr = tr.next_sibling.next_sibling



print('@기온(℃)')
for w in tr.children:
if w.name == 'td' and len(w.contents) > 0:
print(w.contents[0].get_text(), end=' ')
print('\n')



tr = tr.next_sibling.next_sibling



print('@풍향/풍속(m/s)')
for w in tr.children:
if w.name == 'td' and len(w.contents) > 0:
print(w['title'], end= ' ')
print('\n')



tr = tr.next_sibling.next_sibling


print('@습도(%)')
for w in tr.children:
if w.name == 'td' and len(w.contents) > 0:
print(w.contents[0].get_text(), end=' ')
print('\n')




관련 포스트


[Python/웹 크롤링(Web Crawling) 강좌] - 파이썬 웹 크롤링(Web Crawling) 강좌 - 1. 웹페이지 긁어오기


[Python/웹 크롤링(Web Crawling) 강좌] - 파이썬 웹 크롤링(Web Crawling) 강좌 - 2. 교보문고 베스트셀러 책이름, 저자, 가격 출력하기


[Python/웹 크롤링(Web Crawling) 강좌] - 파이썬 웹 크롤링(Web Crawling) 강좌 - 3. 네이버 베스트셀러 책이름, 저자, 가격 출력하기





반응형

포스트 작성시에는 문제 없었지만 이후 문제가 생길 수 있습니다.
댓글로 알려주시면 빠른 시일내에 답변을 드리겠습니다.

여러분의 응원으로 좋은 컨텐츠가 만들어집니다.
지금 본 내용이 도움이 되었다면 유튜브 구독 부탁드립니다. 감사합니다 : )

유튜브 구독하기


제가 쓴 책도 한번 검토해보세요.

  1. 연구노트 2020.05.15 09:52

    안녕하세요. 본 홈페이지 및 유튜브 강의를 통해 기상청 데이터를 크롤링 하는 방법을 익히는데 큰 도움이 되었습니다.
    해당 과정을 따라해보다가 의문점이 있어서 댓글로 문의해봅니다.

    소개해주신 방법을 사용 시 기상청 동네예보의 기본 설정 위치 주소인 서울특별시 동작구 신대방제2동의 정보를 크롤링하고 있습니다.
    신대방동이 아닌 접속자의 위치 기반 또는 지정된 위치 정보로 기상정보를 크롤링 하려면 어떻게 해야하는지요?

  2. 2020.07.27 01:02

    비밀댓글입니다

+ Recent posts