【Tips】[python]note APIを使って過去の投稿記事の情報を取得する(その2)
■ noteのAPI
以前以下のnoteで、noteの非公式APIを使って過去の投稿記事の情報を取得する記事を書きました。
今回はその続編です。
前回の記事では、noteAPIを利用して、以下のようなアウトプットを得ることができました。各記事のタイトル、投稿日時、ハッシュタグの数、ハッシュタグの一覧ですね。
今回はそこに、本文のテキストとその文字数を追加してみようと思います。
方法は簡単です。前回のアウトプットの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)
すると、以下のようなリストが返ってきます。
これを少しスクリプトで加工すれば、以下のようなCSVファイルが作成できますね!
いやぁ便利な時代になりましたね!これでnoteの分析がいよいよ捗りそうです。(^^)
この記事が気に入ったらサポートをしてみませんか?