본문 바로가기
RPA

파이썬 네이버스포츠뉴스 내용 가져와 엑셀에 입력하기

by Sol95 2023. 3. 1.
728x90

이전글에 BeautifulSoup에 추가로 엑셀에 가져온 데이터를 입력하고 저장하는 내용입니다

추가된 내용으로는 가장 먼저 파이썬에서 엑셀을 사용하기 위한 작업입니다

1. from openpyxl import Workbook 먼저 import 해주기

2. 원하는 사이트 url 변경하기

3. data_html에 필요한 css값 입력하기(연속된 데이터를 추천합니다 예시로 네이버에 검색한 블로그 리스트, 카페 리스트 등)

4. for문을 통해 여러 번 작업 진행하여 배열형식으로 추가

5. 엑셀 시트명, 배열에 입력된 값 입력, 폴더와 파일이름을 작성하고 저장하기

import requests
from bs4 import BeautifulSoup
from openpyxl import Workbook

url = 'https://sports.news.naver.com/index'

response = requests.get(url)
response.raise_for_status()
html = response.text
soup = BeautifulSoup(html, 'html.parser')
data_html = soup.select_one('#content > div > div.today_section.type_no_da > ul')
trs = data_html.select('li')
datas = []
for tr in trs:
    title = tr.select_one('a > div.text_area > strong').get_text()
    detail = tr.select_one('a > div.text_area > p').get_text()
    news = tr.select_one('a > div.text_area > div > span:nth-child(1)').get_text()
    type_sport = tr.select_one('a > div.text_area > div > span:nth-child(2)').get_text()
    datas.append([title, detail, news, type_sport])

write_wb = Workbook()
write_ws = write_wb.create_sheet('Sheet2')
for data in datas:
    write_ws.append(data)

write_wb.save(r'C:\RPA/Result_File.xlsx')

 

빨간색 표기 부분으 데이터들을 쪼개서 가져옵니다
파이썬 실행 후 저장된 엑셀파일과 본문 내용

해당 테스트를 진행하면서 분명 화면에서는 총 5개의 데이터가 있는데 자꾸 6번 데이터가 나오길래 광고가 추가 되는 줄 알았는데 광고도 아니어서 뭐가 문제인지 확인해 봤더니 실제 개발자도구에서 확인해 보면 6번에 데이터가 있는 걸 확인할 수 있다 화면에는 광고가 뒤쪽 베이스는 실제 데이터가 있다

728x90
반응형

댓글