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件で満足しておこう