-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
검색어 랭킹과 비슷하게 다른 문제를 만들어 보았습니다.
20.05.05 15:15 작성 조회수 172
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")
답변을 작성해보세요.
0
답변 1