
ãããŒã¿ã®éãæ¹è¬åº§ãNote APIã䜿ã£ãŠèªåã®æçš¿ããããŒã¿ãéãã-PythonÃNote API-
ã¯ããã«
ããããã€
ãé«èЧããã ãããããšãããããŸã.
ãœãããŠã§ã¢ãšã³ãžãã¢ã®Kitaharaã§ã.
æ¬æ¥ã¯noteã®ããŒã¿ã®åéæ¹æ³ã解説ããŸãïŒ
Noteã«ã¯éå ¬åŒã®APIããããããâŠ
å
æ¥, Twitter APIã䜿ã£ãRã«ããããŒã¿åéæ¹æ³ã®èšäºãåºããŸãã!
(ãæèªããã ãããããšãããããŸã)
ãã®èšäºãæžããŠãããšãã«noteã®å®£äŒãTwitterã§èªåã§ããŠã¿ãããªãŒãšèãå§ããŠããŸãã. ããã§noteã®APIãç¡ããæ¢ããŠã¿ããšããèšäºãåºãŠããŸãã.
ãã®èšäºã®ä»¥äžã®APIãå®éã«äœ¿ã£ãŠã¿ãŠ, Twitterã®èªåæçš¿ã«äœ¿ããªããæ€èšããŠã¿ãŸãïŒ
https://note.com/api/v2/creators/hagure_melon
ç¹å®ãŠãŒã¶ãŒã®åºæ¬æ å ±
https://note.com/api/v2/creators/hagure_melon/contents?kind=note&page=1
ç¹å®ãŠãŒã¶ãŒã®èšäºäžèЧãèšäºã®keyãIDãååŸå¯èœ
䜿çšãããã®ã®èª¬æ
Note APIã¯åèèšäºã«ãããš, éå ¬åŒã®ãã, 宣èšãªã倿Žãããå¯èœæ§ããããšã®ããšã§ã.Â
APIãå©çšããäžã§ã®æ³šæç¹
APIã¯å ¬åŒãnoteãéå¶ããäžã§ã®ããŒã«ãšããŠäœ¿çšãããŠããã ãã§ãããäºåãªã仿§ãå€ããå¯èœæ§ããã(2020幎5æ7æ¥æç¹ã§ã¯æå¹)
åœç¶ãµãŒããŒã«è² è·ãããããããªè¡çºã¯NGã§ãããå©çšã®éã¯èŠçŽéåããªãããã«æ°ãä»ãããã
ã¢ããªã±ãŒã·ã§ã³ãå¶äœãããšãã¯ãšã©ãŒã«ãªãå¯èœæ§ãããããšãçè§£ããããã§, ãšã©ãŒæã«Gmailçã§ç¢ºèªã§ããããã«ããŠãããããã®ã§ãã.
(Gmailã®åãåãã®èšäºãä»é±ã®ã©ããã§æžããŸãïŒ)
Note API
Noteã®APIã§ã.
éå ¬åŒã®ããäºåãªã倿Žãè¡ãããå¯èœæ§ããããŸã.
2022/02/08 çŸåšã§ã¯å©çšã§ããŠããŸã.
Python
ããã°ã©ãã³ã°èšèªã®ã²ãšã€ã§ã.
å宣èšçãç¡ã, åå¿è ã«ãæ±ããããèšèªã ãšèšãããŠããŸã
è¿å¹ŽDeep Learningã®ã©ã€ãã©ãªãè±å¯ã§ããããšããæ³šç®ãéããŠãã人æ°ã®èšèªã§ã
Google Colab
GoogleãæäŸããPythonã®å®è¡ç°å¢ã§ã
äž»èŠãªã©ã€ãã©ãªãã€ã³ã¹ããŒã«ãããŠããç¶æ ã§äœ¿ãããšãã§ããŸã
Chromeã§ã¢ã¯ã»ã¹ããã ãã§å©çšããããšãã§ããŸã
ç°å¢æ§ç¯ãäžèŠã§ã
ç¡æã§äœ¿ãããšãã§ããŸã
ç°å¢æ§ç¯
äžèšã®ã³ãŒããGoogle Colubã§å®è¡ããŠãã ãã
# Google Colubã§ã³ãã³ããæã€ãšãã¯ã!ããå
é ã«ä»ãã
!pip install requests
!pip install jsonããã§ä»å䜿ãã©ã€ãã©ãªã¯ãã¹ãŠæããŸããïŒ
APIã詊ããŠã¿ã
ã¯ãªãšã€ã¿ãŒãæ€çŽ¢
ã¯ãªãšã€ã¿ãŒãæ€çŽ¢ããã«ã¯ä»¥äžã®æ§ã«æžããŠãããŸã.
import requests
url = 'https://note.com/api/v2/creators/'
user_name = 'kitahara_note'
response = requests.get(url+user_name)å®è¡ãã§ããããªã¯ãšã¹ããæåããã確èªããŠã¿ãŸããã.
200ã衚瀺ãããã°æåã§ãïŒ
print(response)ã¬ã¹ãã³ã¹ã®çªå·ã®æå³ã«ã€ããŠã¯ä»¥äžã®è³æãåèã«ããŠã¿ãŠãã ãã.
ã¬ã¹ãã³ã¹ã200ã§ããã°ä»¥äžããã«ããŠããŒã¿ã衚瀺ããŠã¿ãŸããã
å ¥å
import json
response.json()åºå
...
'profile': 'Software Engineer\nLanguage: Python/JavaScript\nCertification: JSSC Grade Pre-1\nããŒã¿ã®åéãšå¯èŠåã®æ¹æ³ãçºä¿¡ããŠããŸã',
'profileImageKey': '2d123e0a80867cb02df89c5185647fbe',
'profileImageUrl': 'https://assets.st-note.com/production/uploads/images/69510585/profile_2d123e0a80867cb02df89c5185647fbe.jpg?fit=bounds&format=jpeg&quality=85&width=330',
...è²ã ãªããŒã¿ã衚瀺ãããŸãã. äžèšã®äŸã§ã¯ãããã£ãŒã«ããããã£ãŒã«ã®ç»åã®ããŒã¿ã衚瀺ãããŠããŸã.

ã¯ãªãšã€ã¿ãŒãæå®ããŠèšäºã®æ å ±ãæ€çŽ¢
èšäºæ å ±ã®ååŸã§ãã, å°ãã³ãããããŸã.
ãšã³ããã€ã³ãã®URL ã
https://note.com/api/v2/creators/user_name/contents?kind=note&page=1
ãšãªã£ãŠããã®ã§pageãããã€ãååšããããšãåãããŸã.
ç§ãã¡ã¯ããŒãžçªå·ãããã€ããã®ãã¯ç¥ããªãã®ã§æ¢çŽ¢ããããšã«ãªããŸã. 以äžã®ããšãèžãŸããŠ, ããŒã¿ãç¡ããªã£ãæã«breakããforæã§å®è£ ããŸãã.
ããš, time.sleep(2)ãå ¥ããŠããŸã. ããã¯ã¬ã¹ãã³ã¹ãæããããŠãµãŒããŒã«è² è·ããããªãããã«ããããã§ã.
â (ãã®èšäºã§ãæžããŠããã®ã§ãã, Dos æ»æãšã¿ãªãããããšããããŸã)
å眮ããé·ããªããŸããã,
ã³ãŒããæžããŠæ¬²ããããŒã¿ã衚瀺ããŠã¿ãããšã«ããŸã.
å ¥å
import time
def search_notes(user_name):
for i in range(100):
url = 'https://note.com/api/v2/creators/'+user_name+'/contents?kind=note&page='+str(i)
response = requests.get(url+user_name)
# ããŒã¿ãç¡ããªã£ããå®è¡ã忢ãã
if response.json()['data']['contents'] == []:
print('break!: ',i)
break
time.sleep(2)
# ããŒã¿ãããã°å®è¡
results = response.json()
for result in results['data']['contents']:
if result['format'] == '4.0' and result['status'] == 'published':
print('name:', result['name'])
print('like: ', result['likeCount'])
print('image:', result['eyecatch'])
print('URL:', result['noteUrl'])
for j in range(len(result['hashtags'])):
print(result['hashtags'][j]['hashtag']['name'])
print('pulished:', result['publishAt'])
print('===========================')颿°ãæžãããå®è¡ããã³ãŒããæžããŠãããŸã.
user_name = 'kitahara_note'
search_notes(user_name)åºå
name: ãããŒã¿ã®éãæ¹è¬åº§ãTwitterããŒã¿ããã£ã1è¡ã§æãæ¹æ³-Pythonãè¶
ãã-
like: 3
image: https://assets.st-note.com/production/uploads/images/71740928/rectangle_large_type_2_b4842bbc9d1cf09c8bc1c8cafbcfd7b1.png?fit=bounds&quality=85&width=1280
URL: https://note.com/kitahara_note/n/n2f47f0ef9302
#Twitter #ããã°ã©ãã³ã° #çµ±èš #ããŒã¿ãµã€ãšã³ã¹ #Rèšèª
pulished: 2022-02-08T10:52:19+09:00
===========================
name: ããŠã§ããšã³ãžãã¢ã®åå¿é²ãRèšèªã®ããŒã«ã«ç°å¢æ§ç¯
like: 0
image: https://assets.st-note.com/production/uploads/images/71648399/rectangle_large_type_2_91cdea85186fad81fbfb551fc76e677c.png?fit=bounds&quality=85&width=1280
URL: https://note.com/kitahara_note/n/na9683b7aafa8
#ããã°ã©ãã³ã° #åå¿é² #çµ±èš #ããŒã¿ãµã€ãšã³ã¹ #Rèšèª
pulished: 2022-02-07T00:59:24+09:00
===========================
...
===========================
name: NoteãéããŠå±ãããããš
like: 9
image: https://assets.st-note.com/production/uploads/images/70259952/rectangle_large_type_2_d22bddecb00a15f473f75bdae15c8650.png?fit=bounds&quality=85&width=1280
URL: https://note.com/kitahara_note/n/n5fc28aeb6575
#çµ±èš #çµ±èšåŠ #ããŒã¿ãµã€ãšã³ã¹ pulished: 2022-01-24T15:39:47+09:00
===========================
break!: 4ç¡äºã«ååŸã§ããŠããŸãã.
ããŒãžã¯4ããŒãžãã£ãããã§ã.
ããã ãããããªåœ¢ã§ããŒã¿ãååŸã§ããã®ã§ããã°Twitter APIã«ãå©çšã§ãããã§ããïŒTwitterã®ç³è«ãã§ãããåãããŠã¿ãããšæããŸãïŒ
ãããã«
ä»åã¯Pythonã䜿ã£ãŠnoteã®ããŒã¿ãåéããæ¹æ³ã解説ããŸããïŒ
åèã«ãªã£ããšããæ¹ã¯ãã²ããŒããã¿ã³ãæŒããŠãã£ãŠãã ããïŒ
ã¢ãããŒã·ã§ã³ãäžãããŸãïŒ
èšäºå ã§äžæãªç¹çããããŸãããæ°è»œã«ãé£çµ¡ãã ãã.
Twitter: @kitahara_dev
email: kitahara.main1@gmail.com
ä»é²
ä»ååéããããŒã¿ãããã¹ããã¡ã€ã«ã«ããŠä¿åããŠã¿ãŸãã.