• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

검색어 랭킹과 비슷하게 다른 문제를 만들어 보았습니다.

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")

답변 1

답변을 작성해보세요.

0

멋지 십니다~~~