해결된 질문
작성
·
266
1
다음에서 날씨 정보를 크롤링 해와서 프린트 해주는 예제 입니다.
import requests
from bs4 import BeautifulSoup
import time
def time_function(f):
def wrapper(*args,**kwargs):
start_time = time.time()
result = f(*args,**kwargs)
end_time = time.time() -start_time
print("{} {} time {}".format(f.__name__,args[1],end_time))
return wrapper
@time_function
def r_find_all(url , parser):
r = requests.get(url)
if r.ok :
bs = BeautifulSoup(r.text,parser)
#print(bs)
lists = bs.select(".list_weather > li")
for li in lists :
areaName = li.find("span" ,{"class": "txt_part"}).get_text()
temper = li.find("span" ,{"class": "txt_temper"}).get_text()
status = li.find("strong").get_text()
print("지역 : {} | 날씨 : {} | 온도 : {}".format(areaName,status,temper))
@time_function
def r_select(url,parser):
r = requests.get(url)
if r.ok :
bs = BeautifulSoup(r.text,parser)
lists = bs.select(".list_weather > li")
for li in lists :
areaName = li.find("span" ,{"class": "txt_part"}).get_text()
temper = li.find("span" ,{"class": "txt_temper"}).get_text()
status = li.find("strong").get_text()
print("지역 : {} | 날씨 : {} | 온도 : {}".format(areaName,status,temper))
#naver가 이제 바뀌었기 때문에 다음의 날씨 정보로 가져오자
print("다음에서 가져온 날씨 정보")
r_find_all("https://www.daum.net","html.parser")
r_select("https://www.daum.net" , "lxml")