見出し画像

【Tips】[python]note APIを使って過去の投稿記事の情報を取得する(その2)

■ noteのAPI

 以前以下のnoteで、noteの非公式APIを使って過去の投稿記事の情報を取得する記事を書きました。

 今回はその続編です。

 前回の記事では、noteAPIを利用して、以下のようなアウトプットを得ることができました。各記事のタイトル、投稿日時、ハッシュタグの数、ハッシュタグの一覧ですね。

画像1

 今回はそこに、本文のテキストその文字数を追加してみようと思います。

 方法は簡単です。前回のアウトプットのCSVの「記事のキー」に記載されているキーを、下のスクリプトにコピーして、Google Colabの新規Notebookに貼り付けてください。

 ちなみに記事のキーは、記事を開いた時のURLの末尾の文字列と同じのようです。

https://note.com/[ユーザー名]/n/[記事のキー]


import requests, json
from bs4 import BeautifulSoup
import sys

key="XXXXXXXXX"   <-- 取得したい記事のキー

def get_body_text(key):
   
   url="https://note.com/api/v1/notes/"+key
   res_notes = requests.get(url).json()
   
   body = res_notes["data"]["body"]
   
   title = res_notes["data"]["name"]
   
   publish_at = res_notes["data"]["publish_at"]
   
   tags=res_notes["data"]["hashtag_notes"]
   tag_list = [ tag["hashtag"]["name"] for tag in tags ]
   
   soup = BeautifulSoup(body, "html.parser")
   list_p = soup.find_all("p")
   list_txt  = [ x.text.replace("\u3000","") for x in list_p ]
   
   txt = "".join(list_txt)
   txt_count = len(txt) 
   
   print(title,txt_count)
   
   return (title, publish_at, txt_count, txt, tag_list )

get_body_text(key)

すると、以下のようなリストが返ってきます。

画像2

これを少しスクリプトで加工すれば、以下のようなCSVファイルが作成できますね!

画像3

 いやぁ便利な時代になりましたね!これでnoteの分析がいよいよ捗りそうです。(^^)

この記事が気に入ったらサポートをしてみませんか?