본문 바로가기
Dev/파이썬

구글 제미나이 인공지능으로 코딩 후기 : 티스토리 글 링크주소 가져와서 빙 웹마스터 등록

by Learn to Run 2024. 3. 4.
반응형

 
요즘 인공지능이 코드를 잘 짜준다고 하는데
 
궁금해서 한 번 구글 제미나이로 코드를 짜달라고 해봄
 

빙 웹마스터 툴 : url 제출

 
코드를 짜달라고 한 동기는
 
요즘 티스토리에 방문하는 빙 검색 비율이 높아지는 것 같은데
 
주소를 일일이 링크로 붙여넣기는 귀찮아서
 
글 주소를 복사 붙여넣기 편하게 하려는 목적임
 
 
구글 제미나이에게 다음과 같이 요청함
참고) 제미나이 링크

‎Gemini - 대화를 통해 아이디어를 강화하세요

Bard가 Gemini로 바뀌었습니다. Google AI의 도움을 받아 글을 쓰고, 계획하고, 학습해 보세요.

gemini.google.com

 
> html 문서를 인풋으로 받고 a 태그의 링크만 출력해주는 파이썬 코드를 작성해줘
 

from bs4 import BeautifulSoup

def extract_links(html_content):
  """
  HTML 문서에서 a 태그의 링크만 추출하여 출력하는 함수

  Args:
    html_content: HTML 문자열 또는 BeautifulSoup 객체

  Returns:
    a 태그의 href 속성 값 목록
  """

  # BeautifulSoup 객체 생성
  if isinstance(html_content, str):
    soup = BeautifulSoup(html_content, "lxml")
  else:
    soup = html_content

  # a 태그 찾기
  links = soup.find_all("a")

  # 링크 추출 및 출력
  for link in links:
    href = link.get("href")
    if href:
      print(href)

# 예시 코드
html_content = """
<html>
<head></head>
<body>
  <a href="https://www.google.com">Google</a>
  <p>This is a paragraph.</p>
  <a href="https://www.naver.com">Naver</a>
</body>
</html>
"""

extract_links(html_content)

 
생각보다 빠르게 코드를 작성해줌
 
예시코드 부분만 바꾸만 바로 이용이 가능함
 
bs4 패키지를 pIp 을 통해서 설치하면 결과물을 얻을 수 있음
 
글 관리 탭에서 링크가 여러가지가 있는데
 
필요한 링크 내부링크가 아닌 글의 주소만 포함하고 싶어서
 
코드를 약간 수정해줌
 

  # 링크 추출 및 출력
  for link in links:
    href = link.get("href")
    if href:
      if href.startswith("https"):
          print(href)

 
 
https 로 시작하는 것만 출력을 하도록 수정하고
 
실행하면 원하던 글의 링크 주소만 출력함
 
gui 기능이 있으면 좋을 것 같아서 추가해달라고 함
 

from tkinter import *
from bs4 import BeautifulSoup

def extract_links(html_content):
  """
  HTML 문서에서 a 태그의 링크만 추출하여 출력하는 함수

  Args:
    html_content: HTML 문자열 또는 BeautifulSoup 객체

  Returns:
    a 태그의 href 속성 값 목록
  """

  # BeautifulSoup 객체 생성
  if isinstance(html_content, str):
    soup = BeautifulSoup(html_content, "lxml")
  else:
    soup = html_content

  # a 태그 찾기
  links = soup.find_all("a")

  # 링크 추출 및 출력
  for link in links:
    href = link.get("href")
    if href:
      return href

def on_click():
  """
  "추출" 버튼 클릭 이벤트 처리 함수
  """

  # 입력 텍스트 박스 내용 가져오기
  html_content = input_text.get("1.0", "end")

  # 링크 추출
  links = extract_links(html_content)

  # 결과 출력
  output_text.delete("1.0", "end")
  for link in links:
    output_text.insert("end", f"{link}\n")

# 메인 윈도우 생성
root = Tk()
root.title("HTML 링크 추출")

# HTML 입력 텍스트 박스
input_text = Text(root, width=50, height=10)
input_text.pack()

# "추출" 버튼
extract_button = Button(root, text="추출", command=on_click)
extract_button.pack()

# 결과 출력 텍스트 박스
output_text = Text(root, width=50, height=10)
output_text.pack()

# 메인 윈도우 실행
root.mainloop()

 
기존 코드에 tkinter 를 이용해서 gui 구현해줌
 
로직을 조금 수정해서 사용해야 해서
 
완전히 코드를 모르면 안 될 것 같기는 함
 
프로그래밍을 조금 이해하면 충분히 일상생활에서 필요한 스크립트를 만들 수 는 있어보임
 
 
 
 

 
크롬에서 개발자탭에서 html element 를 카피하고
 
상단의 텍스트 박스에 붙여넣기 하고
 
추출 버튼을 누르면
 
아래에 아웃풋으로  글 링크 주소 모음이 나옴
 

 
 
사실 귀찮아서 빙에 글을 등록을 안 했는데
 
제미나이 이용하니 생각보다 코드를 쉽게 짤 수 있고
 
크게 오류도 없어서 좋았음
 
api 를 이용하거나 자동화를 하면 더 좋겠지만
 
이정도 기능만 있어도
 
티스토리 글 쓸 때마다 매번 등록하기는 사실 귀찮아서
 
개인적으로는 몰아서 가끔 등록하면 좋을 것 같기는 함
 
+ 추가)
클립보드 복사 기능 추가
 

import pyperclip

def on_click_copy():
  """
  "복사" 버튼 클릭 이벤트 처리 함수
  """

  # 결과 텍스트 박스 내용 가져오기
  text = output_text.get("1.0", "end")

  # 클립보드에 복사
  pyperclip.copy(text)
  
# "클래보드 복사" 버튼
copy_button = Button(root, text="복사", command=on_click_copy)
copy_button.pack()

 
 

 

반응형