구글 트렌드 봇 -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 |