본문 바로가기
Python

[파이썬] 네이버 블로그 구글 검색 결과 노출

by 퍼포먼스마케팅코더 2022. 7. 7.
반응형

안녕하세요.오늘 주제는 굉장히 난해하지 않습니다. 여러분 중에도 네이버 블로그를 많이 가지고 계신 분들이 아마 계실 거예요. 근데 왜 네이버 블로그는 구글 검색 결과에 노출되지 않을까요? 그 이유는 하나는 분명합니다. 왜냐하면 네이버 블로그를 네이버가 구글에 노출시키지 않도록 막았기 때문입니다. 그래서 네이버 블로그 유입만 보면 아쉬운 분들이 많이 있기 때문에 오늘은 네이버 블로그에서 구글 검색 결과에 어떻게 노출시킬지에 대해서 말씀드리겠습니다. 이걸 파이썬으로 어떻게 노출시킬까 하는 게 있는데요, 오늘 전반적으로는 네이버 블로그 중 블로그 제목과 본문을 클로링합니다. 이 크롤링을 해놓고 그다음에 구글도 마찬가지로 네이버 블로그 같은 시스템이 있습니다. 거기에 리다이렉트를 뿌려놓고 인증하는 것에 대해 말씀드리겠습니다. 

파이썬 네이버 블로그 구글 검색 결과 노출을  위한 블로그 제목 본문 크롤링 

처음에는 네이버 블로그 슬래시 뒤에 붙어있는 정보가 있잖아요. 여러분의 블로그 아이디입니다. 그리고 다른 것으로 로그 노 변수, 그 다음에 붙는 것이 여러분의 포스트 아이디입니다. 그래서 이 두 개를 가지고 본격적으로 크롤링을 하는데 말 그대로 제목과 본문 내용에서 천 자 정도만 긁어오는 겁니다.

import requests
from    bs4      import BeautifulSoup

blogId = '' #블로그ID 입력
postId = '' #포스트ID 입력

raw = requests.get("https://blog.naver.com/PostView.naver?blogId={}&logNo={}".format(blogId, postId))  #긁기
html = BeautifulSoup(raw.text, 'html.parser') #긁기


title = html.find("meta", property= "og:title") #제목
#desc = html.find("meta", property= "og:description") #스니펫

content_txt = []
content_txt_2 = []

title_2 = title['content'] #제목
content = html.find("div", {"class" : "se-main-container"}).text #본문
content_txt.append(content)


#desc_2 = desc['content']
#desc_2 = desc_2.replace("...", "")
#print(desc_2) 

#content_2 = content.readlines()

    
for i in content_txt :
    nline = i.replace("\n", "")
    nline = nline.replace("\u200b", "")
    nline = nline.replace('↓', "") 
    content_txt_2.append(nline)
#print(content_txt_2) #확인

content_text = str(content_txt_2)  #최종본문

print("제목: " + str(title_2))  #제목확인
print("-------------------------------------------본문----------------------------------------------")
print(content_text[:1000]) #최종본문확인

 

 

파이썬 네이버 블로그 구글 검색 결과 노출을 위한 구글 블로거 인증

그래서 이렇게 긁어오고 그다음에 두 번째로요. 구글 블로그라는 게 있어요. 이 구글 블로그라는 것을 처음에 하기 위해서는 조금 어려운 부분이 있습니다. 그게 여러분이 구글 콘솔 쪽으로 가서 거기서 가져와야 돼요. api 인증을 받아야 해요. 그건 저희 티스토리에 포스팅 해놓은 게 있어요. 그것을 참고해 보면 좋을 것 같습니다. 밑에 url로 써놓을테니 꼭 그것을 참고해서 인증이 끝났다는게 나오면 마지막으로 여러분들이 블로그를 구글 블로그에서 리다이렉트해야겠죠? 한마디로 구글 검색 결과에 네이버 여러분의 제목과 본문을 클릭하면 바로 여러분의 네이버 블로그로 그 내용이 이동하도록 하는 겁니다.

# 구글 블로거 API 인증 (2번 해야됨)

import sys
import os
import pickle
from oauth2client import client
from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request

BLOG_ID = "" #블로거 ID
#SCOPES = ['https://www.googleapis.com/auth/blogger', 'https://www.googleapis.com/auth/drive.file']

SCOPES = ['https://www.googleapis.com/auth/blogger']

def get_blogger_service_obj():
    creds = None
    if os.path.exists('auto_token.pickle'):
        with open('auto_token.pickle', 'rb') as token:
            creds = pickle.load(token)
    if not creds or not creds.valid:
        if creds and creds.expired and creds.refresh_token:
            creds.refresh(Request())
        else:
            flow = InstalledAppFlow.from_client_secrets_file(
                'C:/Users/user/blogger/client_secret.json', SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('auto_token.pickle', 'wb') as token:
            pickle.dump(creds, token)
    blog_service = build('blogger', 'v3', credentials=creds)
    drive_service = build('drive', 'v3', credentials=creds)

    return drive_service,blog_service

drive_handler, blog_handler = get_blogger_service_obj()

파이썬 네이버 블로그 구글 검색 결과 노출을 위한 구글 블로거 API 리다이렉트 포스팅

그 작업을 하기 위한 것입니다. 그래서 그걸 하기 위한 마지막 작업이라는 것만 이 밑에서 확인해주시면 될 것 같아요. 그래서 제가 한 번 확인을 했는데 여기서 한 가지 주의해야 할 사항이 있습니다. 텍스트는 1000자, 1000자 정도를 추천사항으로 드립니다만, 보통은 2000 자도 얘기를 하거든요.그런데 대부분 1000자를 그냥 권유해서 말해요. 그런데 유입에 그렇게 큰 도움이 될지는 잘 모르겠지만 어쨌든 무언가를 노출시키기 위한 방법으로 이렇게 한번 권해봤습니다. 오늘 또 이렇게 그리고 이와 관련된 코딩 등은 제 Get Hub 주소도 나중에 공유할 테니까 나중에 참고해 주세요.

#블로거 포스팅


blogger_redirect_url = str(blog_url)
blogger_title =  str(title_2)
#print(blogger_title)
#print(blogger_redirect_url)

content = content_text[:1000]
content += '<p>블로그로 이동중입니다.&nbsp;</p><p>잠시만 기달려주세요.</p><p><br /></p>'
content += '<meta content="0; URL='+str(blog_url)+'" http-equiv="Refresh"></meta>'




data = {
'content': content,
'title': blogger_title,
'labels' : blogger_title,
'blog': {
    'id': BLOG_ID, # The identifier of the Blog that contains this Post.
  },}
posts = blog_handler.posts()
res = posts.insert(blogId=BLOG_ID, body=data, isDraft=False, fetchImages=True).execute() 
res

 

 

 

 

반응형

댓글