로그인

  • 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

프로그램 클리앙 자동 글쓰기 파이썬 프로그램 소스 (Clien Auto Write)

첨부 2

  1. screenshot.gif (File Size: 1.32MB/Download: 3)
  2. clien_auto_write.zip (File Size: 19.03MB/Download: 78)

클리앙에 자동으로 글을 쓰는 프로그램입니다.

 

기능.

1. 자동 로그인 기능

2. 제목 및 내용 입력

3. 반복 횟수 및 인터벌 자유 설정 기능

4. user-agent 수정 기능

5. chromedrive 버전 선택 기능

 

 

screenshot.gif

 

# -*- coding: utf-8 -*-
# write.py
from selenium import webdriver
import time
import configparser

Config = configparser.ConfigParser()

#config 파일 로드
Config.read('./info.conf', "utf-8")
id = Config.get('clien', 'id')
pw = Config.get('clien', 'pw')
title = Config.get('clien', 'title')
content = Config.get('clien', 'content')
chromedriver = Config.get('clien', 'chromedriver')
agent = Config.get('clien', 'agent')
t_board = Config.get('clien', 't_board')
repeat = Config.get('clien', 'repeat')
repeat = int(repeat)
interval = Config.get('clien', 'interval')


URL = 'https://www.clien.net/service/'
options = webdriver.ChromeOptions()

print("   ################################################")
print("")
print("    클리앙 자동 글쓰기 프로그램을 시작합니다.")
print("    ")
print("    사용법")
print("    contents는 태그제외 3자 이상 입력해야 합니다. (html 사용가능)")
print("")
print("   ################################################")

#headless 모드
options.add_argument('headless')
options.add_argument('window-size=1920x1080')
options.add_argument("disable-gpu")
options.add_argument("user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36")





#user-agent 변경
options.add_argument(agent)

#크롬 드라이버 로드
driver = webdriver.Chrome(chromedriver, options=options)
driver.implicitly_wait(3)

#메인 페이지 로드
driver.get(URL)
# plugins 탐지 우회
driver.execute_script("Object.defineProperty(navigator, 'plugins', {get: function() {return[1, 2, 3, 4, 5]}})")
# lanuages 탐지 우회
driver.execute_script("Object.defineProperty(navigator, 'languages', {get: function() {return ['ko-KR', 'ko']}})")
# gpu 탐지 우회
driver.execute_script("const getParameter = WebGLRenderingContext.getParameter;WebGLRenderingContext.prototype.getParameter = function(parameter) {if (parameter === 37445) {return 'NVIDIA Corporation'} if (parameter === 37446) {return 'NVIDIA GeForce GTX 980 Ti OpenGL Engine';}return getParameter(parameter);};")


time.sleep(3)

#로그인 구간
driver.find_element_by_name('userId').send_keys(id)
driver.find_element_by_name('userPassword').send_keys(pw)
driver.find_element_by_name('로그인하기').click()

print("")
print("   로그인에 성공하였습니다. ")
print("   글쓰기 페이지로 이동합니다.")


for i in range(0, repeat):

    # 글작성 페이지 로드
    driver.get(t_board)
    time.sleep(3)

    #글작성 구간
    driver.find_element_by_class_name('input_title').send_keys(title)
    driver.find_element_by_class_name("fr-element").send_keys(content)
    driver.find_element_by_class_name("button-agree").click()
    print(f'     {repeat}중 {i}회가 시행되었습니다.')
    time.sleep(int(interval))

print(f"     {title}란 제목의 글쓰기가 총 {repeat}회 성공하였습니다. 5초후 종료합니다.")
time.sleep(5)
driver.quit()

 

 

[clien]
chromedriver = ./chromedriver_78.exe
agent = Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36
t_board = https://www.clien.net/service/board/regist?boardCd=park
id = userid
pw = userpasswd
title = 제목을 넣습니다.
content = 내용을 넣습니다.
repeat = 5
interval = 5

 

설정파일 info.conf 파일 설명

chromedriver = 자신이 사용하는 크롬의 버전에 맞는 드라이버를 선택합니다.

t_board = 포스팅할 게시판 쓰기 주소를 입력합니다.

repeat = 반복할 횟수

interval = 글쓰는 간격 초단위

 

소스를 보시면 일반적인 사이트는 거의 동일하게 작동이 가능합니다.

 

https://www.clien.net/service/board/lecture/8391497 를 참고하여 기능을 추가하였습니다.

 


이런 글도 찾아보세요!

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 0

권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?