뉴스 크롤링, ChatGPT 요약, 구글 스프레드시트 연동 자동화
📍실습코드(.ipynb) : https://drive.google.com/file/d/1ztil...
📍셀레니움 공식 문서 : https://selenium-python.readthedocs.io/
📍OpenAI API 공식 문서 : https://platform.openai.com/docs/over...
01:12 웹크롤링을 위한 셀레니움 사용하기
07:06 셀리니움으로 요소 접근하기
12:47 네이버 오늘의 뉴스 크롤링하기
25:23 크롤링한 기사 ChatGPT로 요약하기
34:00 구글 스프레드 시트 셋팅하기
40:20 요약 결과 스프레드 시트에 저장하기
https://www.youtube.com/watch?v=waP8gsaaIys
패키지 설치
pip install selenium==4.1.5
pip install webdriver-manager
pip install openai
pip install gspread
네이버 뉴스 “스포츠” 카테고리 모든 기사 링크 긁어오기
news_links[0].get_attribute("href")
cnt = 1
for news in news_links:
print("[오늘의 ", cnt, "번째 뉴스]")
print(news.get_attribute("href"))
cnt+=1
각 뉴스 기사 링크에 접속해보기
news_list = []
cnt = 1
for news in news_links:
print("[오늘의 ", cnt, "번째 뉴스]")
print(news.get_attribute("href"))
news_list.append(news.get_attribute("href"))
cnt+=1
for news in news_list:
driver.get(news)
각 뉴스의 제목과 본문을 가져오기
driver.get(news_list[0])
news_title = driver.find_element(By.CLASS_NAME, 'NewsEndMain_article_title__kqEzS')
print(news_title)
print(news_title.text)
driver.find_element(By.CLASS_NAME, '_article_content')
print(driver.find_element(By.CLASS_NAME, '_article_content').text)
news_texts = driver.find_element(By.CLASS_NAME, '_article_content')
print(news_texts.text)
-----------------------------------------------------------
전체 기사별 제목과 본문 한번에 가져오기
import time
긁어온 기사들을 ChatGPT로 요약
print(news_content_list[0]['title'])
ptint(news_content_list[0]['main_text'])
completion = client.chat.completions.create(
model="gpt-4o-mini", #gpt-3.5-turbo-0125
messages=[
{"role": "user", "content":
"""아래 뉴스 내용을 읽고, 핵심내용을 파악하여 2줄 정도로 요약해주세요. 그리고 이 뉴스기사를 통해 후속 기사는 어떤 내용일 지 추론해 알려주세요.
뉴스 제목 : {}
뉴스 본문 : {}
""".format(news_content_list[0]['title'], news_content_list[0]['main_text'])}
]
)
print(completion.choices[0].message)
print(completion.choices[0].message.content)
결과물 구글 스프레드 시트에 저장
---------------------------------------------------------------
D 열에 뉴스 기사 url 추가
for idx, news_content in enumerate(news_content_list):
completion = client.chat.completions.create(
model="gpt-4o-mini", #gpt-3.5-turbo-0125
messages=[
{"role": "user", "content":
"""아래 뉴스 내용을 읽고, 핵심내용을 파악하여 2줄 정도로 요약해주세요. 그리고 이 뉴스기사를 통해 후속 기사는 어떤 내용일 지 추론해 알려주세요.
뉴스 제목 : {}
뉴스 본문 : {}
""".format(news_content['title'], news_content['main_text'])}
]
)
print(completion.choices[0].message.content)
worksheet = doc.worksheet("시트2")
## 제목 업데이트
worksheet.update_acell('A{}'.format(idx+2),news_content['title'])
## 본문 업데이트
worksheet.update_acell('B{}'.format(idx+2),news_content['main_text'])
## ChatGPT 결과물 업데이트
worksheet.update_acell('C{}'.format(idx+2),completion.choices[0].message.content)
## 뉴스 링크 추가
worksheet.update_acell('D{}'.format(idx+2),news_list[idx])
'AI 인공지능과 활용' 카테고리의 다른 글
DB 조회 결과에 따라 쿼리문 수정하는 Agent | LangGraph | Text2Cypher (0) | 2025.02.27 |
---|---|
LLM 바닥부터 만들기 [홍정모 연구소] (0) | 2025.02.26 |
코딩 능력은 클로드? | Claude 3.7 Sonnet & Claude Code (0) | 2025.02.26 |
타이니 제로가 딥시크는 저비용 AI임을 증명했는데 H100, H800 스펙 논란? (0) | 2025.02.24 |
웹 검색 기반 채팅 AI Agent 구현(LangGraph, Tool Calling Agent) (0) | 2025.02.24 |