2026.07.13(月) / 09:44
wpの2026年5月27日以降の記事URL一覧を取得した
- ID
- 40022
- Published
- 2026-07-13 09:44
- Modified
- 2026-07-13 17:23
- Author
- khiro
- Categories
- デフォルト
ki-hi-ro.comの公開済み記事URLをすべて取得して、テキストファイルに保存するなら、このPythonコードでいけます。
import requests
API_URL = "https://ki-hi-ro.com/wp-json/wp/v2/posts"
OUTPUT_FILE = "wp_article_urls.txt"
def fetch_all_post_urls() -> list[str]:
urls = []
page = 1
while True:
response = requests.get(
API_URL,
params={
"status": "publish",
"per_page": 100,
"page": page,
"orderby": "date",
"order": "desc",
"_fields": "link",
},
timeout=30,
)
response.raise_for_status()
posts = response.json()
urls.extend(post["link"] for post in posts)
total_pages = int(
response.headers.get("X-WP-TotalPages", "1")
)
print(f"{page}/{total_pages}ページを取得しました")
if page >= total_pages:
break
page += 1
return urls
def save_urls(urls: list[str]) -> None:
with open(OUTPUT_FILE, "w", encoding="utf-8") as file:
file.write("\n".join(urls))
print(f"{len(urls)}件のURLを {OUTPUT_FILE} に保存しました")
if __name__ == "__main__":
article_urls = fetch_all_post_urls()
save_urls(article_urls)
実行すると、次のような形式で wp_article_urls.txt が作成されます。
https://ki-hi-ro.com/記事スラッグ1/
https://ki-hi-ro.com/記事スラッグ2/
https://ki-hi-ro.com/記事スラッグ3/
WordPress REST APIは1回のリクエストで取得できる件数に上限があるため、per_page=100で取得し、レスポンスヘッダーの X-WP-TotalPages を使って全ページを巡回しています。_fields=linkによって、記事本文などを除外しURLだけを取得できます。(WordPress Developer Resources)
必要なライブラリが入っていない場合は、先に実行します。
pip install requests
その後、たとえばファイル名を get_wp_urls.py として実行します。
python get_wp_urls.py
Pythonディレクトリで作業
hiroki@shibatahiroshitakanoiMac python % git remote get-url origin
https://github.com/ki-hi-ro/python.git
仮想環境作成
hiroki@shibatahiroshitakanoiMac python % python3 -m venv venv
hiroki@shibatahiroshitakanoiMac python % source venv/bin/activate
(venv) hiroki@shibatahiroshitakanoiMac python %
ライブラリのインストール
(venv) hiroki@shibatahiroshitakanoiMac python % pip install requests
Collecting requests
Downloading requests-2.34.2-py3-none-any.whl.metadata (4.8 kB)
Collecting charset_normalizer<4,>=2 (from requests)
Downloading charset_normalizer-3.4.9-cp312-cp312-macosx_10_13_universal2.whl.metadata (41 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.7/41.7 kB 1.2 MB/s eta 0:00:00
Collecting idna<4,>=2.5 (from requests)
Downloading idna-3.18-py3-none-any.whl.metadata (6.1 kB)
Collecting urllib3<3,>=1.26 (from requests)
Downloading urllib3-2.7.0-py3-none-any.whl.metadata (6.9 kB)
Collecting certifi>=2023.5.7 (from requests)
Downloading certifi-2026.6.17-py3-none-any.whl.metadata (2.5 kB)
Downloading requests-2.34.2-py3-none-any.whl (73 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 73.1/73.1 kB 2.1 MB/s eta 0:00:00
Downloading certifi-2026.6.17-py3-none-any.whl (133 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.3/133.3 kB 3.7 MB/s eta 0:00:00
Downloading charset_normalizer-3.4.9-cp312-cp312-macosx_10_13_universal2.whl (319 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 319.3/319.3 kB 9.4 MB/s eta 0:00:00
Downloading idna-3.18-py3-none-any.whl (65 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.5/65.5 kB 2.6 MB/s eta 0:00:00
Downloading urllib3-2.7.0-py3-none-any.whl (131 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 131.1/131.1 kB 5.3 MB/s eta 0:00:00
Installing collected packages: urllib3, idna, charset_normalizer, certifi, requests
Successfully installed certifi-2026.6.17 charset_normalizer-3.4.9 idna-3.18 requests-2.34.2 urllib3-2.7.0
[notice] A new release of pip is available: 24.0 -> 26.1.2
[notice] To update, run: pip install --upgrade pip
READMEの作成

2026年5月27日以降の記事に限定してください


2025年11月6日〜2026年5月29日に限定したい

https://github.com/ki-hi-ro/python/commit/3058f277d838d1f6c1db00bd0ad9f84bb2dc6159
実行
(venv) hiroki@shibatahiroshitakanoiMac get_wp_urls % python3 get_wp_urls.py
1/2ページを取得しました
2/2ページを取得しました
173件のURLを wp_article_urls.txt に保存しました

GitHub
https://github.com/ki-hi-ro/python/tree/main/get_wp_urls
やりたかったこと
NotebookLMに退職後の自分が書いたブログ記事を読み込ませて、音声解説などをしてもらいたかった
NotebookLMに一度に読み込ませられるURLの件数は何件ですか?
Google公式では、一度の貼り付け操作におけるURL件数の上限は明記されていません。複数URLは、改行またはスペースで区切って一括登録できます。(Google ヘルプ)
ただし、URLは1件につき1つの「ソース」として扱われるため、実質的にはノートブックのソース上限が制限になります。
- NotebookLM Standard(無料):1ノートブック最大50ソース
- 有料プラン:プランに応じて100・300・500・600ソースまで (Google ヘルプ)
したがって、無料版の新しいノートブックなら、最大50件のURLをまとめて貼り付けるのが目安です。すでに10件のソースが入っていれば、追加できるのは残り40件です。
今回作成したWordPressの記事URL一覧は、確実に処理するなら50件ごとのテキストファイルに分割するのがよさそうです。
添付のURL一覧を50件ごとに分割してもらえますか?

50件でも有効になりません

25件にしてもらってもいいですか?

通った

100件が上限


100件で満足しておこう
