크롤링 출력 오류

조회수 449회

업데이트 없이 단순 출력만 할 때는 10개씩 출력이 되었는데, 5초마다 업데이트되게 설정하니 기사가 하나만 출력이 됩니다..

업데이트될 때마다 동일하게 10개씩 출력하려면 어떻게 해야 하나요?

그리고 확인용으로 10초 단위로 업데이트를 시키는데 업데이트하다가 프로그램이 갑자기 꺼집니다.. 특정 키를 입력하기 전까지 꺼지지 않도록 하려면 어떻게 해야 하나요??

import requests
from bs4 import BeautifulSoup
import time

raw = requests.get('https://search.naver.com/search.naver? 
where=news&query=%EC%86%8D%EB%B3%B4&sm=tab_srt&sort=1').text
html = BeautifulSoup(raw, 'html.parser')

articles = html.select('.type01 > li')

for article in articles:

    title = article.select_one('a._sp_each_title').text
    print(title)

    time.sleep(10)

1 답변

  • 좋아요

    2

    싫어요
    채택 취소하기

    코드를 잘못 작성하신 것 같습니다.

    질문자님께서 작성하신 코드는 10개의 뉴스를 10초에 한 개씩 출력하라는 내용의 코드입니다.

    10초에 한 번씩 업데이트를 하고 싶으시다면 다음 코드를 참고해 주세요.

    import requests
    from bs4 import BeautifulSoup
    import time
    
    def update():
        # 속보 뉴스 목록 불러오기
        raw = requests.get('https://search.naver.com/search.naver?where=news&query=%EC%86%8D%EB%B3%B4&sm=tab_srt&sort=1').text
        html = BeautifulSoup(raw, 'html.parser')
    
        articles = html.select('.type01 > li')
    
        return articles
    
    while True:
        articles = update()  # 속보 뉴스 목록 불러오기 (업데이트)
    
        # 속보 뉴스 목록 출력하기 (총 10개)
        for article in articles:
            title = article.select_one('a._sp_each_title').text
            print(title)  # 출력
        print()
    
        time.sleep(10)  # 10초 기다리기
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)