[python] 블로그 자동 포스팅 프로그램 with 쿠팡 파트너스 - 6 티스토리 블로그 자동 포스팅

    이제는 생성된 글을 토대로 티스토리에 자동 포스팅을 할 차례가 왔다. 첫번째 관문은 티스토리 로그인시 발생하는 2차 인증이었다. 꽤 긴 시간 발목이 잡혀있었지만 카카오톡 계정관리에서 2차 인증을 끄는  의외로 간단한 방법으로 해결할 수 있었다. 로그인에 성공하고 글쓰기 페이지로 이동, 제목 작성까지는 문제 없이 빠르게 진행되었다. 하지만 두번째 문제는 본문 작성이었다. 본문을 작성하기 위해 element를 찾아서 내용을 넣었지만 해당 element를 찾을 수 없다고 했다.

     

    티스토리 글 작성 페이지에서 F12 개발자 도구를 켜면 본문이 iframe 안에 포함되어있는 것을 알 수 있다.

    driver.switch_to.frame("editor-tistory_ifr")
    그래서 위 코드를 통해 포커스를 iframe으로 바꿔주고 글을 쓰니 본문을 작성할 수 있었다.
     
    나는 저번에 크롤링 했던 이미지의 url주소를 가지고 있고 주소를 통해서 상품의 대표 이미지를 넣어야했다.
    (쿠팡파트너스 활동을 위해서 사용하는 것은 저작권법에 위배되지 않는다.)
    컴퓨터에 저장하는 과정을 생략하고 웹주소로 이미지를 바로 넣으려면 html 태그를 사용해야 했다.
    본문의 구조를 보면 글을 쓸 때 줄마다 body 안에 <p> 태그로 추가되는 것을 볼 수 있다. 그래서 <p> 와 <img> html태그를 직접 설정해 넣어줬다.
     
    body = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "tinymce")))
            # 자바스크립트로 <img> 태그 삽입 (DOM에 직접 넣기)
            img_src = img_srcs[i]
            html = f'<p><img src="{img_src}" alt="쿠팡 이미지"></p>'
            driver.execute_script("arguments[0].insertAdjacentHTML('beforeend', arguments[1]);", body, html)
     
    마지막으로는 이어쓰는 글이 있을 시에 예외처리였다.
    try:
                WebDriverWait(driver, 3).until(EC.alert_is_present())
                alert = driver.switch_to.alert
                print("알림창 내용:", alert.text)
                alert.dismiss()
                print("알림창 거절")
            except:
                print("알림창 없음")

     

    3초간 기다렸다가 알림창이 없으면 pass 있으면 취소 버튼을 누르도록 했다.

     

    최종적으로 자동포스팅 되는 이러한 글을 얻게 되었다.

     

    댓글