개발/파이썬 업무 자동화

파이썬 - 웹 자료 수집하기

이게될까 2024. 2. 21. 03:13
728x90
728x90

requests는 설치가 필요합니다!

 

pip install requests

설치 !

import requests

url = 'https://www.naver.com'

a = requests.get(url)
#print(a.status_code) # 응답 상태 확인 200이면 정상
# 404 not found

#print(a.encoding) # 웹에서 사용하기 편하게 하는 것 
# 여기서는 UTF-8이다.

#print(a.text[:300]) # 내용 확인 300까지만

html = a.text # 저장
open('naver.html','w',encoding ='utf-8' ).write(html) # 이름, 모드 (쓰기), 인코딩 정보
# 열어보면 메인 페이지만 나온다.

날씨 정보 수집
url의 정보

url에서 년, 월, 일등 다양한 정보가 포함되어 있다.

https://www.weather.go.kr/w/obs-climate/land/past-obs/obs-by-day.do?stn=108&yy=2020&mm=6&obs=1

 

과거관측 - 일별자료 - 기상청 날씨누리

개편된 날씨누리 홈페이지 첫 화면에서 지도를 통한 실시간 기상정보와 레이더영상, 전국 특보 현황을 조회할 수 있으며, 내 지역의 현재 기상상황과 대기질 상태, 일출/일몰 시각을 확인할 수

www.weather.go.kr

물음표 기준으로 오른쪽에 정보가 주르륵 나열되어 있다.

서울 날씨 저장하기!

import requests

def get_page(stn,yy,mm):
    url = f'https://www.weather.go.kr/weather/climate/past_cal.jsp?stn={stn}&yy={yy}&mm={mm}'
    a = requests.get(url)
    return a.text

stn = 108 # seoul
yy = 2020
for mm in range(1,13): # 1월부터 12월까지
    html = get_page(stn,yy,mm)
    fpath = f'{stn}_{yy}_{mm}.html'# 파일 이름 지정
    open(fpath,'w',encoding='utf-8').write(html) # 저장
    print(fpath,'saved') # 저장되었는지 확인

BeautifulSoup !

설치해야한다!

pip install beautifulsoup4

cmd에 작성해주시면 됩니다.

import requests
from bs4 import BeautifulSoup # 원하는 정보 추출하는 용!

user = 'candy'
r = requests.get(f'https://dic.daum.net/search.do?q={user}') # 검색하기!
soup = BeautifulSoup(r.text,"lxml") # parsing = 특정 문장을 분석, 해석
# 이것도 설치해야 하네요
# pip install lxml
print(r)
#print(soup.prettify) # 이건 오류나네요 ㅠ
728x90