반응형
안녕하세요 디벨로펄입니다.
웨딩 관련해서 네이버 카페에 댓글 하루에 10개를 달면 1000원을 벌 수 있습니다.
한 달 최대 10개이니 총 1만 원인셈이지요
하지만, 챙기는게 너무 귀찮고 힘듭니다.
카페 댓글 10개정도면,
파이썬으로는 충분히 가능할 것 같지 않나요?
맞습니다.
매우 쉽게 가능합니다.
이 글에서는 댓글 자동화 프로세스와
구현 과정에 대해서 말씀드리도록 하겠습니다.
요약
- 프로젝트 개요 및 정리
- 카페 댓글 자동 작성 프로세스
- 구현 원리
- 상세 코드
프로젝트 개요 및 정리
- 총 소요시간 : 5시간
- 주요 이슈 : 네이버 로그인 자동화(네이버에서 로그인 자동화 기능을 막아둠)
- 언어 : python
- 라이브러리 : selenium, openai
- 배운점
- python에서 GPT API를 활용하는 방법 습득
- selenium으로 유의미한 프로그램 개발 가능성
카페 댓글 자동 작성 프로세스
프로세스는 다음과 같습니다.
1. 네이버 로그인
2. 카페 진입
3. 게시판 선택
4. 댓글 달 게시물 선택 및 댓글 달기
(댓글다는 단계에서 GPT를 활용해 매크로성 댓글이 아닌 실제 사람이 단 댓글처럼 꾸몄습니다.)
구현 원리
selenium을 활용하여 웹페이지를 제어하여 구현했습니다.
모든 프로그램은 아주 작은 기능이 모여서 만들어집니다.
핵심은 다음과 같습니다.
get, switch_to, find_element, send_keys, click
이 메서드를 적재적소에 활용하여 원하는 기능을 구현하면 됩니다.
1. 웹페이지 진입 - get(url)
2. iframe 전환 - 가끔 사용되나 필수임 - switch_to.frame(iframe)
driver = webdriver.Chrome()
# 핵심 1. 웹페이지 진입
driver.get(url)
# 핵심 2. iframe 전환
iframe = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, iframe_selector)))
driver.switch_to.frame(iframe)
3. 객체를 찾아서 값을 가져온다. - find_element
# 핵심3. 객체를 찾아서 값을 가져온다.
selector = f"#main-area > div:nth-child(4) > table > tbody > tr:nth-child({n}) > td.td_article > div.board-list > div > a"
a_element = driver.find_element(By.CSS_SELECTOR, selector)
posts.append({
"title": a_element.text,
"link": a_element.get_attribute("href")
})
4. 값을 입력한다 - send_keys
# 댓글 입력 창 찾기
comment_box = WebDriverWait(self.driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR,
"#app > div > div > div.ArticleContentBox > div.article_container > "
"div.CommentBox > div.CommentWriter > div.comment_inbox > textarea"))
)
# 댓글 입력
comment_box.send_keys(comment_text)
5. 버튼을 클릭한다. - click()
submit_button = driver.find_element(By.CSS_SELECTOR,
"#app > div > div > div.ArticleContentBox > "
"div.article_container >"
"div.CommentBox > div.CommentWriter > div.comment_attach > "
"div.register_box > a")
submit_button.click()
상세코드
상세코드는 git을 참조해주세요~
반응형
'Python' 카테고리의 다른 글
[Python] PyQt - QHBoxLayout()을 활용한 커스텀 위젯 (0) | 2024.01.29 |
---|---|
[Python] PyQt - QPushButton에 이미지/아이콘 추가해서 아이콘 버튼 만들기! (0) | 2024.01.10 |
[Python] PyQt 실행 및 사용법(feat. pycharm) (0) | 2024.01.07 |
[Python] Anaconda 및 Pycharm 설치 - 파이썬 개발환경 설정 (1) | 2024.01.07 |
댓글