구글 트렌드 봇 -2

2023. 5. 8. 20:56프로젝트/구글 트렌드 봇

전에는 

[

  ['date1', [트렌드1,요약1,검색수1,링크1],...date1의 개수만큼...]

  ['date2', [트렌드2,요약2,검색수2,링크2],...date2의 개수만큼...]

  ...]

 

이런 복잡한 3중 구조의 리스트로 저장해뒀는데.

 

정리가 필요하다.

columns = ['날짜', '이슈', '제목', '조회수', '링크']
rows = []

for i in trend_list:
    date = i[0]
    for trend in i[1:]:
        row = [date] + trend
        rows.append(row)

df = pd.DataFrame(rows, columns=columns)

이를 실행하면

 

잘 정리 되었다..

 

import pandas as pd
import requests
from datetime import datetime, timedelta
import time

trend_df = pd.read_csv("googletrend_230409_230507.csv")

# df["날짜"] = df["날짜"].apply(lambda date_str: ' '.join(date_str.split()[:-1]))
def remove_weekday(date_str):
    split_date = date_str.split()
    cleaned_date = ' '.join(split_date[:-1])
    return cleaned_date

trend_df["날짜"] = trend_df["날짜"].apply(remove_weekday)

for i in reversed(trend_df['날짜'].unique().tolist()):
    time.sleep(1)
    temp_df = trend_df[trend_df["날짜"] == f'{i}'].reset_index().loc[:, ['이슈','제목','링크']]
    
    df = pd.DataFrame(temp_df)
    df.index = range(1, len(df) + 1)
    
    def send_slack_dataframe_with_grid(api_token, channel, dataframe, message=None):
        url = "https://slack.com/api/chat.postMessage"
        headers = {
            "Authorization": f"Bearer {api_token}",
            "Content-Type": "application/json"
        }
        
        code_block = f"```\n{dataframe}\n```"
        
        if message:
            payload = {
                "channel": channel,
                "text": f"{message}\n{code_block}"
            }
        else:
            payload = {
                "channel": channel,
                "text": code_block
            }

        response = requests.post(url, headers=headers, json=payload)
        print(response.json())

    api_token = "토큰값"
    channel = "#구글트렌드"
    message = i
    send_slack_dataframe_with_grid(api_token, channel, df, message=message)

완성된 코드를 실행시키면.

 

날짜별 구글트렌드를 정리해서 올리게 된다!

728x90

'프로젝트 > 구글 트렌드 봇' 카테고리의 다른 글

window, wsl 차이? Chrome, Chromium 차이?  (0) 2023.05.13
구글 트렌드 봇 -3  (0) 2023.05.10
구글 트렌드 봇 -1  (0) 2023.04.29