크롤링 네이버 카페 일반게시판 글등록하기

import time
import pyperclip
from selenium import webdriver
import pygetwindow as pgw
from selenium.webdriver.common.by import By
import gw
ad=time.strftime('%Y-%m-%d',time.localtime(time.time()))
f = open('naver_cafe.txt', "r")
ref = f.readlines()
r = ref[2].split(',')
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 input_text(bs, id, user_input,by=3):
    pyperclip.copy(user_input) # 브라우저 텍스트 박스 선택 복사 붙여넣기
    common.find_element(bs,id,by).click() # css 엘리먼트 선택자 클릭
    Keys = selenium.webdriver.Keys
    selenium.webdriver.ActionChains(bs).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform() # 키보드 ctrl +v
browser = webdriver.Chrome()
browser.get("https://nid.naver.com/nidlogin.login")
input_text(browser,"input#id",f"{ref[0]}")
input_text(browser,"input#pw",f"{ref[1]}")
submit=find_element(browser,"button[type='submit']",3)
submit.click()
# browser.get(f"https://cafe.naver.com/ca-fe/cafes/{r[0]}/menus/{r[1]}/articles/write?boardType=L")
# time.sleep(15)
browser.get(f"https://cafe.naver.com/{r[0]}")
time.sleep(2)
amenulink=find_element(browser,f"a#menuLink{r[1]}",3).get_attribute('href')
browser.get(amenulink)
browser.switch_to.frame("cafe_main")
time.sleep(2)
find_element(browser,"a#writeFormBtn",3).click()
time.sleep(20)
# browser.close()
browser.switch_to.window(browser.window_handles[-1])
title_input = find_element(browser,'textarea.textarea_input',3) #  게시판에 올릴 제목
title_input.send_keys(f'{ref[3]}')
time.sleep(3)
input_text(browser,"p.se-text-paragraph.se-text-paragraph-align-left",f"{ref[4]}") # 게시판에 올릴 내용
time.sleep(3)
file_path=f"{dir_path}"+'\\'+"img_empty.jpg"
common.find_el(browser,'button.se-image-toolbar-button.se-document-toolbar-basic-button.se-text-icon-toolbar-button.__se-sentry',3).click() # 사진 파일 버튼
file_input=common.find_el(browser,'input#hidden-file',3) #사진 파일 업로드
file_input.send_keys(file_path) # 파일 입력
time.sleep(5)
window = pgw.getWindowsWithTitle('열기')[0] # 윈도우창 제목이 '열기'로 되어 있는창 가져오기
window.close() # 창 닫기
abtn=find_element(browser,'a.BaseButton.BaseButton--skinGreen.size_default',3) # 등록 버튼
abtn.click() # 등록 버튼 클릭
time.sleep(8)
abtn=find_element(browser,'div#floatingda_content div a',3) # 해피빈 콩 적립 링크
abtn.click() # 링크 클릭
time.sleep(2)
browser.quit()
3
3개의 답글

👉 이 게시글도 읽어보세요

모집 중인 AI 스터디