Completion over Perfection

내 포스팅 글자 수와 이미지 갯수 파이썬으로 알아내기 본문

파이썬 (Python)

내 포스팅 글자 수와 이미지 갯수 파이썬으로 알아내기

난차차 2020. 7. 6. 22:23
반응형

내 블로그 포스팅 글자 수와 이미지 갯수 파이썬으로 알아내기

 

"내 블로그는 저품질일까 고품질일까?"

 

블로그를 작성하시는 분들은 항상 걱정하고 우려하는 그 부분!

내 포스팅이 검색엔진에서 상위에 노출될것인가 아닐것인가일 겁니다.

 

많이 알려진 사실로는 포스팅을 한 개 올릴때마다 글자 1,000자 이상을 써야 하고

이미지는 일정 갯수 이상 올려야 상위에 노출된다고 하죠.

 

그래서 저도 항상 포스팅을 하고나서 네이버 글자 수 세기를 검색해서

포스팅 전체 글자를 복붙하곤 했죠.

 

많은 분들이 이용하는 네이버 글자 수 세기!

 

하지만 아무래도 ctrl+a / ctrl+c / ctrl+v 를 반복하기도 귀찮고,

무엇보다도 이미지 갯수가 몇개인지는 직접 세어보아야 알 수 있다는 점이 좀 짜증납니다.

 

보통은 대충 감으로 "이정도면 되겠지" 하고 작성을 하실 겁니다.

 

"블로그 포스팅 글자 수는 파이썬으로 자동으로 세자!"

 

그래서 제가 한번 파이썬으로 

블로그 포스팅 된 글자 수 + 이미지 수를 자동으로 세어주는 코드를 짜봤습니다.

 

사용한 라이브러리는 역시나 파이썬의 단골 라이브러리 selenium 셀레니움과

웹페이지를 파싱하는데 최적화된 BeautifulSoup 뷰티풀수프를 사용했습니다.

 

 

먼저 두 개의 라이브러리를 불러와줍니다.

from bs4 import BeautifulSoup
from selenium import webdriver

 

그리고 url을 입력받습니다.

 

cpath = '/Users/Downloads/chromedriver'
url = input('검사하려는 url을 입력해주세용\n')

 

티스토리 기준으로 모든 글자는 p 태그 안에 작성이 됩니다.

이를 이용해서 p 태그안의 텍스트만 가져오면서 가져올때마다 세주는 로직을 짜줍니다.

 

아래 코드를 보시면

먼저 html 변수 안에 현재 띄운 페이지 소스를 담아줍니다.

(html = driver.page_source)

 

그 이후 soup 변수안에 html을 통째로 파싱해줍니다.

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

 

그 다음에 위에 말씀드렸던 p태그안의 값들만 선택해서 가져와줍니다.

(ptag = soup.find_all('p'))

 

driver = webdriver.Chrome(cpath,options=options)
driver.get(url)
driver.implicitly_wait(10)
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
ptag = soup.find_all('p')

 

이렇게 하면 p태그 안의 값들만 모두 가져올 수 있습니다.

 

"공백은 제거하고 텍스트를 세보자"

 

공백을 제거하고 글자수를 세는 로직을 짜보겠습니다.

저는 아래와 같이 짰습니다.

 

textnum=0
for p in ptag:
# print(p.text)
    line = len(str(p.text).replace(" ",""))
# print(line)
    if line == 1:
        pass
    else:
        textnum += line

textnum 변수가 글자수를 담는 변수가 될거고,

for문을 돌면서 p.text를 통해 p 태그 안의 텍스트 값만 가져오도록 합니다.

 

p.text값을 가져오면서 그 길이를 line안에 담아주는데,

밑에 if절에서 만약 길이가 1이라면 pass 하도록 해주었습니다. 

공백은 1로 잡히기 때문이죠.

 

그리고 이미지 갯수를 세는 것은

티스토리에서 붙여넣는 이미지는

figure 태그 안에 imageblock alignCenter라는 class안으로 들어가게 되어 있더군요.

 

img라는 변수안에 해당 태그안에 값들을 가져오도록 코드로 짜면 됩니다.

저는 아래와 같이 짰습니다.

 

img = soup.find_all('figure', attrs={'class':'imageblock alignCenter'})

 

이렇게 하면 로직은 완성되었습니다.

이제 결과값을 출력해줘야겠죠.

 

print('글자수는 '+str(textnum) +'개 입니다.')
imgnum =0
for i in img:
    imgnum+=1
print('이미지 갯수는 ' + str(imgnum) + '개 입니다.')

 

다 된것 같네요~

제 포스팅 글 중에서 아무거나 하나만 돌려보겠습니다.

대상이 되는 포스팅은 로또를 파이썬으로 매일 자동구매하기 라는 포스팅입니다.

 

돌린 결과는~

 

나의 포스팅을 검사해보았다

글자 수는 2,214개이고 이미지 갯수는 9개네요.

 

이 정도면 다음에서 상위에 노출되지 않을까요?

물론 검색어가 더 중요하겠지만요 ㅎㅎㅎ

 

오늘은 재미로 한번 짜 본 코드를 소개해드려보았습니다.

 

다음에도 더 재밌는 코드로 돌아오겠습니다~

 

반응형
Comments