STUDY/Python

댓글 작성하는 매크로 프로그램

sinawi95 2020. 10. 23. 14:33
728x90

1. 파이썬을 사용해서 댓글 반복 작성하는 프로그램을 만드려고함

2. BeautifulSoup으로 게시글 url에 들어갈 id 파악

3. pyautogui, pyperclip로 키보드와 마우스 제어


 

더보기

import requests

from bs4 import BeautifulSoup

import pyautogui

import pyperclip

import html

 

def findUrl(page):#page내 게시글 URL 파악후 리스트로 반환

    url1="(주소생략)" #http://(사이트주소).php?(게시판)

    response= requests.get(url1)

    url2="&page="+str(page)+"&wr_id="

    url=[]

    if response.status_code==200:

        soup=BeautifulSoup(response.content,'html.parser')

        td = soup.select('.l_num')

        td=td[1:]

        for ntd in td:

            tmp=url1+url2+ntd.text.strip()

            url.append(tmp)

    return url #ex) url[0] = http://(사이트주소)/board.php?table=1&page=1&wr_id=123456"

def writeEnter(): #게시글 작성

    pyperclip.copy("(내용)")          # typewrite는 한글 입력안됨. 클립보드에 텍스트를 복사합니다. 

    pyautogui.hotkey('ctrl''v')      # 클립보드 내용붙여넣기 

    pyautogui.press("tab")           # 댓글상자 넘어감(작성or보내기)

    pyautogui.press("enter")         # 작성(보내기)상자 엔터 

 

if __name__== "__main__":  

    #1. 페이지 내 게시글 주소 가져오기 

    url=findUrl(1)

 

    #2. 게시글 내 댓글달기

    while(url!=[]): #리스트 안에 내용이 있는경우에만 진행

        print(len(url)) #얼마나 남았는지 확인

        #2-1. 주소창 클릭 및 게시글 이동,  x,y좌표는 print(pyautogui.position())로 찾음

        pyautogui.click(x=342y=110button='left'clicks=1,interval=1

        pyautogui.press("delete")

        pyautogui.typewrite(url.pop())

        pyautogui.press("enter")

 

        #2-2 댓글작성 상자 위치 파악 (맨밑으로 내리고 일정값 이상 올림,불변)

        pyautogui.click(x=83y=973button='left'clicks=1,interval=2)

        pyautogui.press("pagedown")

        pyautogui.press("end")

        for i in range(0,14):

            pyautogui.press("up")

        pyautogui.click(x=246y=240button='left'clicks=1,interval=1)

 

        #3 댓글달기

        writeEnter()

        #엔터 안눌리는 것을 대비해 작성(보내기)상자 클릭, 클릭후 3초정도 대기

        pyautogui.click(x=862y=260button='left'clicks=1,interval=3