요즘 인공지능이 코드를 잘 짜준다고 하는데
궁금해서 한 번 구글 제미나이로 코드를 짜달라고 해봄
코드를 짜달라고 한 동기는
요즘 티스토리에 방문하는 빙 검색 비율이 높아지는 것 같은데
주소를 일일이 링크로 붙여넣기는 귀찮아서
글 주소를 복사 붙여넣기 편하게 하려는 목적임
구글 제미나이에게 다음과 같이 요청함
참고) 제미나이 링크
> 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()
'Dev' 카테고리의 다른 글
뉴비를 위한 AWS Amlify 배포 프로세스 이해하기 : CodeCommit, IAM (0) | 2024.05.02 |
---|---|
[구글 스프레드] 외국인 지분율 차트 만들기 : y축 2개 만들기, 축 범위 설정 (0) | 2024.04.23 |
수익형 블로그 플랫폼 비교 : 티스토리, 네이버, 워드프레스, 블로그스팟 (ft. 애드센스, 키워드, SEO) (0) | 2023.09.23 |
구글 블로그스팟 폰트 사이즈 변경 : itempost, post-body 설정 (0) | 2023.09.20 |
2023년 파이썬 웹프레임워크 순위 (ft. 블로그를 위한 웹프레임워크 추천) (0) | 2023.09.17 |