3주차 셀레니움, API 활용 블로그 글쓰기 미션

[ 셀레니움으로 네이버 검색하기]

  • GPTs를 활용하여 셀레니움을 활용해 네이버에 ‘chatgpt’를 검색하는 파이썬 코드를 만들어 달라고 요청.

  • 웹드라이버 설치가 필요하다고 해서 인터넷을 검색하여 ‘ChromeDriver’ 다운로드


  • 크롬 버전을 확인하고, 맞는 윈도우 버전의 크롬 웹드라이버를 다운로드

(다운로드 URL : https://chromedriver.chromium.org/downloads )


  • 하지만 오류가 계속 발생. gpt에 오류를 계속 복붙하면서 수정.

  • 여러 시도 끝에 완성된 코드.

  • 미션 답안의 코드는 경로 설정을 안해도 된다니 신세계입니다.

from  /selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By  # By 클래스 임포트
import time

# ChromeDriver 서비스 설정
s = Service("웹드라이버_경로_입력")
driver = webdriver.Chrome(service=s)

# URL 열기
driver.get('https://www.naver.com/')

# XPath를 사용하여 검색 창 찾기 (By.XPATH 사용)
search_box = driver.find_element(By.XPATH, '//*[@id="query"]')

# 'chatgpt' 검색어 입력 및 검색 실행
search_box.send_keys('chatgpt')
search_box.send_keys(Keys.RETURN)

# 결과를 확인하기 위해 잠시 대기
time.sleep(5)

# 브라우저 닫기
driver.quit()
 

[API 활용 블로그 글쓰기]

  • 미션의 어려움을 직감하고, 답안을 살짝 컨닝을 했습니다.

  • ‘openai.completion.craete’ 관련 오류 발생.


  • 먼저 미션하신 다른 분들을 참고해서 버전 관련 오류라는 것을 어렴풋이 이해. 하지만 오류를 계속 수정해도 진도가 나가지 않음.

  • 파이참 터미널 오류 메세지에 문득 `pip install openai==0.28` 문구가 눈에 띔.

(버전을 낮춰서 실행하니 정상적으로 동작😀)

Alternatively, you can pin your installation to the old version, e.g. `pip install openai==0.28` 

  • 답안 코드를 바탕으로 제가 기획하려던 ‘여행 준비 체크리스트’ 내용 작성도 가능하겠다 싶어 ‘사용자 입력사항 프롬포트’를 약간 변경했습니다.

import openai

# OPENAI API 키 설정
openai.api_key = ''


def generate_blog_content():
    # 모델 선택
    model_choice = input("사용할 모델을 선택해주세요 (1: gpt-3.5-turbo, 2: gpt-4-turbo-preview): ")
    model = "gpt-3.5-turbo" if model_choice == '1' else "gpt-4-turbo-preview"

    # 사용자 입력사항
    city = input("방문도시 또는 국가: ")
    travel_period = input("여행 기간: ")
    nationality = input("여행자 국적:")
    group = input("여행자 구성원:")
    travel_type = input("여행 성격(관광, 먹거리, 쇼핑, 휴양 등):")
    airline = input("항공사:")
    transportation_preference = input("현지 교통수단(대중교통, 기차, 렌트카 등):")

    # 사용자 입력을 바탕으로 프롬프트 구성
    system_prompt = f"이 글은 사용자에게 {travel_period}에 맞춘 {city}의 여행 정보를 제공합니다. {city}의 날씨 정보, 옷차림 권장 사항, {city}에서 사용되는 전압 및 플러그 타입, {nationality} 여행자를 위한 환전, 비자, 면세범위, {airline}의 항공 수하물 규정, {transportation_preference} 이용에 대한 팁, {group}과 {travel_type}을 고려한 추가적인 여행 준비물이나 유용한 팁을 포함합니다. 네이버 SEO에 최적화된 글을 작성하세요."
    user_prompt = f"{city}에 대한 여행 정보를 간략히 알려주세요. 방문도시: {city}, 여행 기간: {travel_period}, 여행자 국적: {nationality}, 여행 구성원: {group}, 여행 성격: {travel_type}, 항공사: {airline}, 현지 교통수단: {transportation_preference}"
    assistant_prompt = "네이버 SEO를 고려하여, 사용자의 질문에 답변하는 형태로 글을 구성합니다."

    try:
        # OPENAI API를 통해 글 생성
        response = openai.ChatCompletion.create(
            model=model,
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": user_prompt},
                {"role": "assistant", "content": assistant_prompt}
            ]
        )
        # 생성된 글 출력
        print("\n생성된 블로그 컨텐츠:")
        print(response.choices[0].message['content'])
    except Exception as e:
        print("컨텐츠 생성 중 오류가 발생했습니다:", e)


if __name__ == "__main__":
    generate_blog_content()
  • 출력 결과. 다소 문장이 딱딱하지만 원하는 내용을 어느 정도 출력해준 것 같습니다.

  • GPT를 활용해서 블로그에 넣을 이미지 생성

  • 생성한 텍스트와 이미지를 블로그에 포스팅✈️

(포스팅한 블로그 URL: 싱가폴 해외여행 체크리스트 )

#문과생도AI, #9기, #3주차과제

3
4개의 답글

👉 이 게시글도 읽어보세요