네이버블로그 친구 공감 클릭 - 셀레늄

셀레늄 - 공감 클릭하기

이번에는 네이버 로그인을 성공한 이후
블로그로 이동하여
블로그 친구들의 게시글에 좋아요를 클릭을 해보겠습니다.


공감부분을 엘리먼트를 확인합니다.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())

driver.implicitly_wait(10) #10초대기 설정

driver.get("https://www.naver.com")

from selenium.webdriver.common.by import By
driver.find_element(By.CLASS_NAME,'link_login').click()

user = {'id':'아이디넣는곳','pw':'비밀번호넣는곳'}

from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
import pyperclip

driver.find_element(By.ID,'id').click()
pyperclip.copy(user['id'])
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

driver.find_element(By.ID,'pw').click()
pyperclip.copy(user['pw'])
ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()

driver.find_element(By.CLASS_NAME, 'btn_global').click()

#네이버 블로그로 이동 후 공감클릭 시작
driver.find_element(By.LINK_TEXT,'블로그').click()
import re
like_list = driver.find_elements(By.CLASS_NAME, 'u_likeit_list_btn._button.off')
for like in like_list:
    print(like.text)
    like_cnt = re.findall("\d+",like.text)
    if like_cnt and int(like_cnt[0]) < 2:
        continue
    else:
        like.click()
        break
    time.sleep(1)

1.find_elements 로 공감을 클릭하지 않은 엘리먼트만 list 형태로 가져옵니다.
​※find_elements 는 복수개의 엘리먼트를 가져올때 사용합니다.
2.love.text 변수를 찍어보면 - 공감해요 10- 이런식으로 출력되는것을 확인할 수 있습니다.
3.re함수를 이용해 숫자만 love_cnt로 가져옵니다.
4.like_cnt 를 int로 캐스팅 해고 공감수가 2보다 적으면 공감을 클릭하지 않는다.
※ 글을 보지 않고 공감을 누르는것이기 때문에 주인장이 찾와서 글도 안보고 공감누르지 말라고 머라하는분이 계십니다...

공감 클릭하는 부분을 무한루프 돌리면
친구들의 글에 항상 공감을 클릭해줄 수 있겠죠?^^;

셀레늄 및 웹드라이버 매니저 설치
find element 사용하기
find element By사용하기


TAG: #naver #blog #heart #공감클릭 #selenium # #find_elements