www.instagram.com
1편:
[Python] 네이버 블로그 자동 포스팅 만들기 - 1
프로그램 개발 의뢰가 들어왔다.... 바로 GPT를 이용해 네이버 블로그에 자동으로 글을 올려야 한다는 의뢰 .... !! 코딩을 전문적으로 배운적이 없고 경력도 없어서 어떤게 정석인진 모르겠으
myworld1004.tistory.com
네이버는 보통 간단한 방법으로 자동화를 하는걸 다 막아놨다.
블로그도 마찬가지로 frame도 바꿔줘야하고 ... 편법도 동원하고 ... 흠.....
지난 1편에 이어서
driver.get('https://blog.naver.com/GoBlogWrite.naver')
driver.switch_to.frame('mainFrame')
글쓰기 페이지로 이동한 뒤
frame을 변경해줬다.
글쓰기에 필요한 요소들은 대부분 frame안에 있어서, 그 밖에서 찾으면 셀레니움이 못찾겠다고 화낸다 .,,,
명시적으로 time.sleep을 이용해서 몇초간 대기하는것도 좋지만,
그거보단 클릭과 같은 행동이 가능해지면 바로 실행하게 하는게 크롤링, 자동화 속도에 있어서 중요한 부분이라
WebDriverWait을 굉장히 좋아하는 편이다.
bb = WebDriverWait(driver, 3).until(
EC.presence_of_element_located((By.XPATH, '//span[contains(text(),"제목")]'))
)
bb.click()
actions = ActionChains(driver)
actions.send_keys('제목 테스트 입니다 ^ ^ ^ ^').perform()
구글링을 하다가 아주 좋은 방법이 있어서 사용해봤다.
contains 인데, 아주 좋은거 같다.
프레임을 변경한 뒤 3초 정도 html 중에서 <span 태그안에 '제목' 이라는 텍스트를 가진 애를 찾아본다.
있으면 click() ! 없으면 오류 날테니 try 해줄 사람은 하면 된다. (오류나면 안됨 ;;......)
그냥 send_keys 했더니 안되길래
ActionChains를 사용했다.
굿 ^^
bb = WebDriverWait(driver, 3).until(
EC.presence_of_element_located((By.XPATH, '//span[contains(text(),"본문에")]'))
)
bb.click()
actions = ActionChains(driver)
actions.send_keys('내용 내용 내용 ^ ^ ^ ^').perform()
bb = WebDriverWait(driver, 3).until(
EC.presence_of_element_located((By.XPATH, '/html/body/div[1]/div/div[1]/div/div[3]/div[3]/button'))
)
bb.click()
bb = WebDriverWait(driver, 3).until(
EC.presence_of_element_located((By.XPATH, '/html/body/div[1]/div/div[1]/div/div[3]/div[3]/div/div/div/div[8]/div/button'))
)
bb.click()
마찬가지로 본문도 작성하고, 발행을 하자 !
본문까지 작성하고 우측 상단 발행버튼을 누르면 태그나 카테고리 등등 설정하는 창이 나온다.
나는 그냥 무시하고 바로 발행하기로 했지만, 설정이 필요하면 설정을 하고 최종발행 하게끔 수정하면 된다.
이번에도 발행이 된건지 안된건지 프로그램이 알게 하고 싶다 !!!!!!!!!!!!!!!!!!!!!!!!!!!
t = 1
while t < 6:
if '제목 테스트 입니다 ^ ^ ^ ^' in driver.title:
return 1
else:
time.sleep(1)
t += 1
return 0
블로그 글발행이 되면 발행한 게시물로 바로 이동 되는데, 그 때 title이 제목으로 바뀌는걸 확인했다 !
그래서 짠 코드 !
마찬가지로 def posting(): 으로 묶어서 사용하면 된다 !
d = login()
if d == 1:
print('로그인 성공')
f = posting()
if f == 1:
print('게시물 작성 성공')
else:
print('게시물 작성 실패')
else:
print('로그인 실패')
이렇게 하면 되는데, 뭔가 조금 난잡해 보인다.
GPT한테 코드를 최대한 짧게 바꿔달라 하니 다음과 같은 답을 줬다 .
def print_result(condition, success_msg, fail_msg):
print(success_msg if condition else fail_msg)
d = login()
print_result(d == 1, '로그인 성공', '로그인 실패')
if d == 1:
f = posting()
print_result(f == 1, '게시물 작성 성공', '게시물 작성 실패')
음... 가독성 좋긴 하네.
자 아무튼 이제 블로그 작성까진 만들었고, 이제 GPT를 이용해서 자동화를 시작해보자 !!!!!!!!!!!!!!!!!!!!!
지금말고 ! 3편에서 !
requests편 보러가기 !!
[Python] 네이버 블로그 자동 포스팅 만들기 - requests로 글쓰기 1편
파이썬에 입문을 하고나면 셀레니움을 자주 사용하게 된다. (아님말고) 웹 자동화를 쉽게 할 수 있고, 안되는게 거의 없어서 아주아주 유용하고 좋긴한데 ...? ! 여러가지 단점들이 존재하고 ....
myworld1004.tistory.com
[종합 매크로] 공지사항
---업데이트 예정
myworld1004.tistory.com
코딩쟁이들 놀이터 : 네이버 카페
세상 모든 코딩쟁이들의 카페입니다
cafe.naver.com
주식회사 유메
#프로그램제작 #프로그램
open.kakao.com
'프로그램 개발일지' 카테고리의 다른 글
[Python] 파이썬 블루스택 제어하기 - 1 (2) | 2024.06.15 |
---|---|
[Python] 스마트 스토어 API 활용 네이버 커머스 API 1편 (3) | 2024.06.15 |
[Python] 셀레니움으로 접속 안 되는 사이트 우회 방법 (2) | 2024.06.14 |
[Python] 네이버 블로그 자동 포스팅 만들기 - 3 / openai api (0) | 2024.06.14 |
[Python] 네이버 블로그 자동 포스팅 만들기 - 1 (2) | 2024.06.14 |