.
.
[9기문과생도AI] 3 주차 Mission 은 2가지 입니다.
셀레니움으로 네이버 접속하기
Python과 OpenAI Chat Completions API를 활용하여 자동으로 블로그 글 생성하기
[미션 1] Selenium으로 네이버 접속하기
1) 네이버 접속
2) 검색창에 원하는 검색어 입력
3) 검색 버튼 클릭
(추가) 화면 캡처 이미지 저장
코드 작성은 Grimoire GPTs를 사용하였는데, 코드가 예시 정답과는 다소 다른 형태로 만들어 졌습니다.
검색창(search_box)을 찾는 요소는 XPATH를 복사해서 넣었습니다.
코드에 사용할 XPATH 복사 순서는 다음과 같습니다. (3번 : 우클릭)
이후 몇 번의 오류와 수정 작업을 거쳐 검색 클릭까지 성공하는 코드가 완성되었고, 마지막에 검색 화면을 캡처하여 이미지로 저장하는 기능을 추가하였습니다.
다음은 최종 코드와 캡처 화면입니다.
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# Initialize the WebDriver (Ensure you have the corresponding driver for your browser)
driver = webdriver.Chrome()
# Open the URL
driver.get("https://www.naver.com")
# Find the search bar using XPATH and enter the search keyword
search_bar = driver.find_element(By.XPATH, '//*[@id="query"]')
search_bar.send_keys("지피터스 부트캠프")
# Press Enter to start the search
search_bar.send_keys(Keys.RETURN)
# Optional: wait for 5 seconds to see the results
time.sleep(5)
# Close the browser
driver.quit()
[미션 2] 나만의 네이버 블로그 컨텐츠 생성하기 with python & ChatGPT API
1. 주제 선정하기
2. 콘텐츠 구상하기
3. Python 스크립트 작성하기
4. 블로그 글 작성 및 게시하기
블로그 글의 주제와 이에 대한 간략한 설명
몇 가지 주제를 가지고 웹 상에서 ChatGPT에게 대화를 한 것 처럼 작성한 python 스크립트를 실행시켜 봤고, 그 중의 하나가 “ChatGPT가 가족 관계에 미치는 영향” 이라는 주제입니다.
스마트폰의 보급이 가족 관계에 영향을 미쳤던 것 처럼, ChatGTP와 같은 생성형 AI의 발전도 어떤 식으로든 가족 관계에 영향을 미치지 않을까 싶어서 당사자 ChatGPT로 글을 생성해 보았습니다.
[Input]
topic : ChatGPT가 가족 관계에 미치는 영향
purpose : 스마트폰의 보급이 가족 간의 관계를 형성 하고 유지하는데 영향을 미쳤던 것 처럼 ChatGPT의 발전이 가족 관계에 어떤 식으로든 영향을 줄 것으로 생각됩니다. ChatGPT가 가족 관계에 미치는 긍/부정적인 영향은 무엇이고, 어떻게 활용하는 것이 좋을지에 대해 알아 보고 싶습니다.
Python 스크립트 코드
import os
import openai
import csv
def get_input_from_user():
topic = input("Enter the topic for the blog post: ")
purpose = input("Enter the description of the topic: ")
return topic, purpose
def choose_model():
print("Choose a model: \n1. gpt-4-turbo-preview\n2. gpt-3.5-turbo")
choice = input("Enter your choice (1 or 2): ")
return 'gpt-4-turbo-preview' if choice == '1' else 'gpt-3.5-turbo'
def write_to_csv(topic, purpose, blog_post, filename="blog_post.csv"):
with open(filename, mode='w', newline='', encoding='utf-8-sig') as file:
writer = csv.writer(file)
writer.writerow(['Topic', 'description', 'Blog Post'])
writer.writerow([topic, purpose, blog_post])
def main():
try:
topic, purpose = get_input_from_user()
model = choose_model()
api_key = os.getenv("OPENAI_API_KEY")
if not api_key:
raise ValueError("API Key not found in environment variables")
openai.api_key = api_key
system_prompt = f"당신은 {topic}를 잘 알고 있는 네이버 블로그 SEO 전문가입니다."
user_prompt = f"블로그 글의 목적은 {purpose}입니다. 이 목적을 참고하여 {topic}에 대한 블로그 글을 생성해 주세요."
assistant_prompt = f"네이버 SEO를 고려하여 글의 제목을 추천해 주세요. \
그리고, 추천 해시태그를 작성된 글의 끝 부분에 추가해 주세요.\
단락 마다 단락의 내용에 대한 소제목을 붙여 주세요. "
response = openai.ChatCompletion.create(
model=model,
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt},
{"role": "assistant", "content": assistant_prompt},
]
)
blog_post = response['choices'][0]['message']['content']
print("Blog post generated successfully.")
# Write results to CSV
write_to_csv(topic, purpose, blog_post)
print("Blog post has been saved to 'blog_post.csv'.")
except Exception as e:
print(f"An error occurred: {e}")
if __name__ == "__main__":
main()
생성된 글을 기반으로 작성한 블로그 포스트의 링크
1) GPT-3.5-turbo 작성 : ChatGPT와 가족 관계: 현대적인 도전과 기회
2) GPT-4-turbo-preview 작성 : ChatGPT 시대를 맞이한 가족 관계의 변화: 긍정적인 영향과 활용법
※ (참고) OpenAI API key 값을 시스템 환경 변수로 설정하여 사용하였습니다.
#9기문과생도AI