
ãnoteèšäºããŒã¿ç®¡çæ³ãPythonã§note APIããCSVåºåã詊ããŠã¿ã
ç§ãããã°ã©ãã³ã°ã®äžçã«è¶³ãèžã¿å ¥ããã®ã¯ãæ¥åžžç掻ã«ãããå°ããªäžäŸ¿ããã¯ãããžãŒã®åã§è§£æ±ºããããšããæãããã§ããã
å ·äœçã«å®çŸãããããšã¯ãããã€ããã£ãŠãããšãã°ãæ¯æããã¡ãŒã«ãã¬ãžã³ãNotionã«èªåã§ä¿åããŠç®¡çããã·ã¹ãã ãäœãããã£ãããnoteã®èšäºãã©ããããèªãã§ããããã®ããåæãããããããšæã£ãŠããŸãã
noteèšäºããŒã¿ç®¡çã®å¿ èŠæ§
noteã£ãŠãã©ããããã®äººã«èªãã§ããã£ãŠããã®ããå šç¶åæã§ããŸãããnoteã®ãã¥ãŒæ°ããããããã·ã¥ããŒãã¯ãããã®ã®ãæ å ±éãå°ãªãããŠãªãã«ãããããŸãããã¢ã¯ã»ã¹è§£æã®èšæž¬ããŒã¿ã欲ããå Žåã¯ãæé¡8äžåïŒçšæïŒã®ãnote proããå¥çŽããå¿ èŠããããŸãããŸããGoogleã¢ããªãã£ã¯ã¹ãèšçœ®ãããå Žåã¯æé¡1äžåïŒçšæïŒã®ãªãã·ã§ã³æéãå¿ èŠã§ãã®ã§ãåèšã§æé¡9äžåïŒçšæïŒãå¿ èŠãšãªããŸããç§ã¯ãã®åé¡ããªããšãããããšæã£ãŠããŸãïŒ
Python ã䜿ã£ã解決ç
ãã®åé¡ã«æãããšãã£ãããšãªã£ãã®ã¯ãnoteã®2ã€ã®èšäºã§ããã
äžã€ã¯ãnoteã®éå
¬åŒAPIã䜿ã£ãŠããŒã¿ãååŸããæ¹æ³ã玹ä»ããsatfããã®èšäºãããäžã€ã¯ãkarupoimouããã®èšäºã§ãããããŸãnoteãæŽ»çšããããŒã¿åæã«é¢ãããã®ã§ããããããã®èšäºãèªã¿ãç§ããã£ãŠã¿ãããšæãç«ã¡ãŸããã
ããŒã¿ååŸ: APIãªã¯ãšã¹ãã®æ§ç¯
仿¥ã®ç®æšã¯ãPythonãšnoteã®(éå ¬åŒ)APIãæŽ»çšããŠã以äžã®ãããªããŒã¿ãå«ãCSVãã¡ã€ã«ãçæããããšã§ãã
èšäºã®ã¿ã€ãã«
ãã¥ãŒæ°
ãããæ°
å ¬éæ¥
èšäºã®URL
ãã®ããŒã¿ã掻çšããããšã§ãã©ã®èšäºãããå€ãã®åé¿ãåŸãŠããã®ããã©ã®ãããªå 容ãèªè ã«é¿ãã®ããåæã§ããŸãããŸããèšäºã®ããã©ãŒãã³ã¹ãæéçµéãšå ±ã«è¿œè·¡ããããšãå¯èœã«ãªããŸãã
ç¬¬äžæ©ãšããŠããŸãã¯Pythonã§APIã«ã¢ã¯ã»ã¹ããå¿ èŠãªããŒã¿ãååŸããæ¹æ³ãåŠã³ãŸãããæ¬¡ã«ãåŸãããããŒã¿ãé©åãªåœ¢åŒã§CSVãã¡ã€ã«ã«åºåããã¹ã¯ãªãããäœæããŸãããããã¯Pythonåå¿è ã«ãšã£ãŠã¯ããªãææŠçãªéšåã§ããããChatGPTã®ãµããŒãã®ãããã§ããªããšãé²ããããšãã§ããŸããã
ãã¡ãããã®ã¹ã¯ãªããã§ãã
import requests
import pandas as pd
from io import StringIO
user_name = "â¯â¯â¯"
contents_api_url = f"https://note.com/api/v2/creators/{user_name}/contents"
payload = {'kind': 'note'}
all_notes = []
note_count = 50  #APIããååŸããç·èšäºæ°
page_num = (note_count // 6) + 1 #ïŒåã®ãªã¯ãšã¹ãã§ååŸã§ããèšäºæ°ã¯6èšäºãŸã§ããã
for page in range(1, page_num + 1):
  payload['page'] = page
  res = requests.get(contents_api_url, params=payload).content
  json_str = res.decode('utf-8')
  df = pd.read_json(StringIO(json_str))
  df_notes = df["data"]["contents"]
  all_notes.extend(df_notes)
# å
šãŠã®èšäºãDataFrameã«å€æ
df2 = pd.DataFrame()
for note in all_notes:
  df_n = pd.DataFrame(note.values(), index=note.keys()).T
  df2 = pd.concat([df2, df_n])
# çµæããšã¯ã»ã«ãã¡ã€ã«ã«ä¿å
df2.to_csv('notes.csv')
user_name = "â¯â¯â¯"ã®ãšããã«ãèªåã®note IDãå ¥ããŠã¿ãŠäžããã
CSVãã¡ã€ã«ãžã®åºå
ãããŠãããåºåã§ãããã®ã®äžéšã

ãã©ãã«ã·ã¥ãŒãã£ã³ã°ãšæé©å
ããã°ã©ãã³ã°ã®å匷ãããŠãããšãæ
å ±ã®å€ããšããã«äŒŽãæè¡çãªéå£ã«æã¡ã®ããããããšã¯ãããããŸããåèã«ããnoteã®èšäºã¯éåžžã«æçã ã£ããã®ã®ãAPIãPythonã®ããŒãžã§ã³ãå€ãã£ãŠããããšã§ãåãæé ã§ã¯ããŸãæ©èœããªãéšåããããŸãããåå¿è
ã«ãšã£ãŠã¯ãããã倧ããªå£ã«ãªãåŸãŸãã
ç§ã¯Pythonã®å匷ãã¯ãããã°ããã®åå¿è ã§ãããŸã ãææ³ãå šç¶çè§£ããŠããªãããæžããŸãããã§ããç§ã«ã¯ChatGPTãã€ããŠããŸãïŒãã®è¬ã®èªä¿¡ãããã°ãã©ããªææŠãä¹ãè¶ãããããšæããŠããŸãïŒããããæ§ã ãªè©Šã¿ãããŠãèªåã®æè¡ã磚ããŠããã€ããã§ãã
ãŒãŒãŒãŒãŒãŒãŒãŒãŒãŒ
ç§ã®æžããæ¬ãåºçãããŸããïŒ
TwitterããããŸããïŒ
ã¡ãã£ãšçç³»ãªããã¡éã³ã®æ¬
Amazon 売ãçã©ã³ãã³ã° ã
幌å
æè² ã«ããŽãªãŒ ãææTop100
ãã¹ãã»ã©ãŒ1äœâšãã«ãªããŸããïŒ
ããããšãããããŸãïŒ
KindleUnlimited,ãããŒããŒããã¯ã§ãèªããŸãïŒ
