커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
단일 엑셀 파일에 해당 1일 날짜의 모든 뉴스를 모으는 방법 + 키워드별 뉴스 갯수 늘리는 방법
undefined주차
북마크
강*수
댓글
3
추천
0
조회수
8
조회수
8
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


  1. 각 키워드(회사)별 뉴스 헤더/링크를 서로 다른 엑셀로 저장하고 있는데, 특정 날짜를 기준으로 모든 키워드의 뉴스 헤더/링크를 한 개의 엑셀로 저장하려면 코드를 어떻게 짜야 할까요?
  2. 또한, 뉴스 갯수가 제한이 있는데 더 많은 뉴스를 스크래핑 하려면 어떻게 해야할까요? (15개 이상?)


스파르타 즉문즉답




작성한 코드 및 에러 메세지

일단 아래처럼 작성하기는 했는데, 혹시 이것 외에 다른 방법은 없을지 궁금합니다. *갯수 제한은 늘리지 못했습니다. 어떻게 늘리면 좋을지 알고 싶습니다!

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook
from datetime import datetime



def get_news(keywords):
  wb= Workbook()
  sheet = wb.active


  for keyword in keywords: 
    print(keyword)
    headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
    data = requests.get(f'https://search.naver.com/search.naver?where=news&ie=utf8&sm=nws_hty&query={keyword}',headers=headers)


    soup = BeautifulSoup(data.text, 'html.parser')


    lis = soup.select('#main_pack > section > div > div.group_news > ul > li')


    for li in lis:
      a = li.select_one('a.news_tit')
      row = [a.text, a['href']]
      sheet.append(row)


  today = datetime.today().strftime("%Y-%m-%d")
  
  wb.save(f"news/{today}_뉴스모음.xlsx")
  wb.close()


오류 발생 시, 작성한 코드 전체와 에러 메시지를 첨부해 주세요.

Tip 1) </> 아이콘을 눌러 코드박스를 만들어 보세요.

keywords = ['삼성전자','LG에너지솔루션','크래프톤','대한항공']

get_news(keywords)mmand+A) 단축키로 코드를 한 번에 선택할 수 있어요!




취소
 공유
취소
댓글 0
댓글 알림
나의얼굴