크롤링 네이버 카페 출석부에 글등록하기

import random
import time
import pyperclip
import selenium
from selenium import webdriver
from selenium.webdriver.common.by import By
bylist=[By.ID,By.NAME,By.CLASS_NAME,By.CSS_SELECTOR,By.TAG_NAME,By.LINK_TEXT,By.PARTIAL_LINK_TEXT,By.XPATH]
def find_element(bs,value,by=0,s=0):
    bystr=""
    for b in range(0,len(bylist)):
        if b==by:
            bystr=bylist[b]
    if s==0:
        return bs.find_element(bystr, value)
    else:
        return bs.find_elements(bystr, value)
def find_el(bs,value,by=3,s=0):
    return find_element(bs,value,by,s)
def input_text(bs, id, user_input,by=3):
    pyperclip.copy(user_input) # 사용자가 입력한 값 복사
    find_el(bs,id,by).click()
    Keys = selenium.webdriver.Keys
    selenium.webdriver.ActionChains(bs).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform() #ctrl + v
f = open('naver_attend.txt', "r") # 텍스트 파일 
ref = f.readlines() 
r = ref[2].split(',') # 텍스트를 줄단위로 읽어 들인 문자열을 쉼표로 분리
browser = webdriver.Chrome()
browser.get("https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/") #네이버 로그인 주소로 이동
time.sleep(3) # 3초 기다림
input_text(browser,"input#id.input_text",f"{ref[0]}",3) # 아이디 텍스트 입력
input_text(browser,"input#pw.input_text",f"{ref[1]}",3) # 비번 텍스트 입력
submit=find_el(browser,"button[type='submit']",3) #로그인 버튼
submit.click() # 클릭
time.sleep(2) # 2초 기다림
browser.get(f"https://cafe.naver.com/{r[0]}") # 네이버 카페 주소로 이동
time.sleep(3) # 3초 기다림
find_el(browser,"p.txt > button.btn_close",3).click() # 인기글 확인 닫기
amenulink=common.find_el(browser,f"a#menuLink{r[1]}",3).get_attribute('href') # 메뉴 링크 하이퍼링크
browser.get(amenulink)
# browser.get(f'https://cafe.naver.com/{r[0]}?iframe_url=/AttendanceView.nhn%3Fsearch.clubid={r[1]}%26search.menuid={r[2]}')
browser.switch_to.frame("cafe_main") # 스위치 프레임 변경
textarea=find_el(browser,"textarea#cmtinput",3) #텍스트 영역
textarea.send_keys(f"{ref[3]}") # 텍스트 영역 키 입력
time.sleep(random.randint(2, 3)) # 2~3초 랜덤하게 기다림
btn=find_el(browser,"div.set_attach button#btn-submit-attendance",3) #등록 버튼
btn.click() # 등록 버튼 클릭
time.sleep(random.randint(2, 3)) # 2~3초 랜덤하게 기다림
browser.quit() # 브라우저 창 모두 닫기
아침마다 네이버 카페에 츨석 할일이 있어서 만들어 봤는데
나름대로 해봤는데 잘되네요
사용법 텍스트 파일 저장 ansi값으로 저장
네이버 로그인 아이디
네이버 로그인 비번
카페 컨텍스트 PATH 주소,카페 메뉴 링크 번호
텍스트 박스에 입력할 문구
4
2개의 답글

👉 이 게시글도 읽어보세요!

📚 AI 활용 사례 더 보기