인프런 커뮤니티 질문&답변

최재영님의 프로필 이미지
최재영

작성한 질문수

남박사의 파이썬 기초부터 실전 100% 활용

[삭제예정] 네이버 실시간 검색어 크롤링 하기

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

해결된 질문

작성

·

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

답변 1

0

남박사님의 프로필 이미지
남박사
지식공유자

멋지 십니다~~~

최재영님의 프로필 이미지
최재영

작성한 질문수

질문하기