l3khub.com

블로그스팟 원클릭 검색엔진 색인요청 #11 - 블로그스팟에서 오늘 포스팅한 글의 링크 가져오기

지금까지 구글과 빙, 그리고 네이버 검색엔진에 색인요청을 하는 코드를 설명드렸습니다. 이번 글에서는 블로그스팟에 오늘 포스팅한 글의 링크를 확인해서 자동으로 가져오는 코드를 작성하도록 하겠습니다. 

블로그스팟에서-오늘-포스팅한-글의-링크-가져오기

블로그스팟 원클릭 검색엔진 색인요청 #11 - 블로그스팟에서 오늘 포스팅한 글의 링크 가져오기



블로그스팟에서 오늘 포스팅한 글의 링크 가져오기 

각 검색엔진에 색인요청을 하기 위해서는 블로그스팟 블로그에 포스팅한 글의 링크주소를 알아야 합니다. 이 링크주소를 복사하는 것도 조금 번거롭기 때문에 오늘 포스팅한 글의 링크를 자동으로 가져오도록 프로그램 코드를 작성해야 합니다. 

# Blogspot에 오늘 날짜로 새로 포스팅 된 글 링크 가져오기
def service_setup():
    creds = None
    if os.path.exists('token.pickle'):
        with open('token.pickle', 'rb') as token:
            creds = pickle.load(token)
    # If there are no (valid) credentials available, let the user log in.
    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(blogspot_check_json, SCOPES)
            creds = flow.run_local_server(port=0)
        # Save the credentials for the next run
        with open('token.pickle', 'wb') as token:
            pickle.dump(creds, token)

    try:
        return build('blogger', 'v3', credentials=creds)
    except Exception as e:
        #print(e)
        self.text3.append(logwrite(e))
        return None

def get_today_posts(service, blog_id, blog):
    try:
        posts = service.posts()
        request = posts.list(blogId=blog_id)
        posts_doc = request.execute()

        # Get today's date
        today = datetime.now().strftime("%Y-%m-%d")

        cnt = 0
        for item in posts_doc['items']:
            # Get the published date of the post
            published_date = item['published'][:10] # Blogger API returns the published date in the format "YYYY-MM-DDTHH:MM:SS.SSZ"

            if published_date == today:
                #print('The URL of the today\'s post is: {}'.format(item['url']))
                s = item['url']
                ss = s.replace('http:', 'https:')
                self.text1.append(ss)
                cnt = cnt + 1
        if cnt == 0: self.text3.append(blog + " 에 오늘 작성한 포스팅이 없습니다.")
    except Exception as e:
        #print(e)
        self.text3.append(logwrite(e))

service = service_setup()
if service:            
    for chk_blg in blog:
        #각블로그에서 오늘 날짜로 포스팅된 모든 글 가져오기
        get_today_posts(service, chk_blg[1],chk_blg[0])

get_today_posts() 함수를 호출하면 사용자의 블로그스팟에서 오늘 날짜로 포스팅된 모든 글의 링크를 가져와 "등록할 URL 리스트"에 추가를 하고, 사용자는 원하는 검색엔진만 체크하여 색인 요청을 할 수 있게 됩니다. 




To Top