본문 바로가기
쬬의 기초정리

[Google Search Console] 색인생성 자동화 만들기 /구글서치콘솔 / Python

by Joooooooo 2023. 7. 12.
반응형

google search console 도입

 

이번에 google search console 을 티스토리 블로그에 도입하면서 정말 많이 고생했다..

2주 전 신청했던 ads sens 는 승인이 나지도 않고,,, 구글 색인은 100개가 넘도록 색인이 생성되지 않는 문제가 발생했다.

원인을 열심히 검색해보았지만 URL 검사 후 색인 생성을 해야한다는 글을 보게되고 시도해봤는데 URL 검사는 대략 1-2분 색인생성 요청은 생성갯수 제한이 있었다.

하다보면서 너무 열받아서 그만 둘까? 생각도 해봤는데, 이렇게 불필요하게 수동으로 하는것도 열받고.. 크롤링 대기열에만 올려놓고 주구장창 기다리면서 매일 확인해야하니 짜증이 슬슬 올라왔다.

그래서 열심히 검색해서 자동화 코드를 찾아냈다. 

 

물론 아래 코드는 기존에 있던 블로그에서 나온 코드와 좀 다르다. 

기존 코드를 붙여넣고 계속 수정하면서 바로 실행이 가능하도록 조금씩 손을 봤다.

사실 파이썬은 블록체인 강의 들을때 한 것 말곤, 정말 처음이다 ㅎ_ㅎ... 그래도 저 색인생성 요청을 매일매일 하고 있을 생각을 하니 정신이 바짝 들면서 해결해봤다.

 

블로그의 인덱싱명을 글자로 표기

티스토리 설정에 들어가서 맨 하단에 위치한 [블로그 > 관리]  로 들어간 후, 주소 설정에 포스트 주소를 문자 로 설정해준다

크롤링을 할 때 무작위로 모바일 버전도 같이 할 경우, 구글을 동일한 내용을 가진 포스팅을 발견하면 크롤링에서 제외시킨다. 그렇기 때문에 최대한 겹치지 않도록 url을 유지해주는 것이 좋다.

 

 

 

 

구글 클라우드 플랫폼 Index API 설정

이럴때 필요한게 index api 이다 한마디로 소유권을 가지고 있어야 크롤링을 할 수 있기 때문에 구글 서치 콘솔에 사용자를 추가해야 한다. index api 에서 이메일을 생성 한 후 사용자를 추가해준다.

 

> indexing api 생성 그대로 따라하기

 

Indexing API 사용을 위한 기본 요건 | Google 검색 센터  |  Google for Developers

Indexing API를 사용하기 전에 클라이언트의 프로젝트 생성, 서비스 계정을 사이트 소유자로 추가하는 등의 필수 작업을 완료해야 합니다.

developers.google.com

 

 

구글 서치 콘솔 소유권 추가

index api 를 그대로 따라해서 사용자 이메일을 얻었다면 [설정] 에 들어가 소유권을 가진 사용자를 해당 이메일로 추가해준다!

 

 

 

서비스 계정으로 OAuth 2.0 클라이언트 ID 만들기

클라이언트 ID 를 만들기 전에 상단바에서 google sheets 를 검색 후 해당 구글 시트 api 를 설치해준다.

그래야 색인생성요청에 사용할 클라이언트 ID JSON 파일을 얻을 수 있다.

 

 

구글 시트 설치 (그래야 JSON 파일 다운 가능)

 

자 이제, [IAM 및 관리자 > 서비스] 계정으로 들어가서

해당 서비스계정에서 [작업 > 키 관리]를 선택해준다.

그리고 키를 생성해주고 JSON 파일로 받는다.

 

서비스 계정 클릭 후 작업 > 키 관리 선택
키 추가 > 키 생성

 

 

 

코드 제작 with Python

코드 제작에 앞서, desktop 위치에 submit_urls.txt 파일을 미리 만들어놧다.

해당 텍스트 파일 안으로 크롤링할 내 블로그의 url 이 차곡차곡 쌓일 예정이다.

 

더보기

패키지 설치

pip install advertools 

pip install oauth2client

pip install httplib2

 

 

search.py

import advertools as adv 

# 사이트맵 주소를 넣어준다.
sitemap_urls = adv.sitemap_to_df("https://jikeun.tistory.com/sitemap.xml")

url = sitemap_urls["loc"].to_list()

submit_urls = [] 


for i in url :
    text = i.find('/entry/') # entry 기준으로 아래 26 숫자가 바뀔 수 있다.
    print(text) # text 숫자를 확인해 주고 아래 26을 바꿔준다.
    if text == 26 : 
        submit_urls.append(i)
        
        
# submit_urls.txt 가 위치한 곳에 파일을 열고 submit_urls 요소를 넣은 후 닫아준다.
f = open("/Users/joeun/Desktop/submit_urls.txt", 'w', encoding='utf8')


for submit_urls in submit_urls :
    f.write(submit_urls + '\n')
f.close()

 

 

search_user.py

from oauth2client.service_account import ServiceAccountCredentials
import httplib2
import json
import time


# 저장해 둔 text 파일을 열어준다
f = open("/Users/joeun/Desktop/submit_urls.txt", 'r', encoding='utf8')

url_lists = f.readlines()

for url in url_lists :
    JSON_KEY_FILE = "/Users/joeun/Desktop/credentials.json" # JSON 위치

    SCOPES = ["https://www.googleapis.com/auth/indexing"]
    ENDPOINT = "https://indexing.googleapis.com/v3/urlNotifications:publish"

    credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_KEY_FILE, scopes=SCOPES)

    http = credentials.authorize(httplib2.Http())
   
    content = {}
    content['url'] = url.replace("\n","")
    content['type'] = "URL_UPDATED"
    json_content = json.dumps(content)
    
    response, content = http.request(ENDPOINT, method="POST", body=json_content)
    
    result = json.loads(content.decode())
    

    print("리절트:",result) # 색인생성된 출력 확인
    
    time.sleep(1)
    
print('끝!')

 

 

요렇게 뜨기 시작하면 성공이다!

* 참고사이트 

 

[python] 파이썬 티스토리 구글, 빙 색인 index 제출 자동화

바빠서 시간이 부족하거나 파이썬 코딩이 처음인 사람들이 많다. 누구나 손쉽게 코딩을 배우고 바로 업무자동화,디지털마케팅 등에 쓰일만한 여러 가지 파이썬 코드를 만들고 있다. 이에 파이

dataanalytics.tistory.com

 

반응형