こんにちは、Heywaです。
最近、ブログの更新やコンテンツ作成に時間を取られすぎて、本来やりたいデータモデル構築やボートレース予測システムの改善に手が回らない…という悩みを抱えていました。ADHDの特性上、ルーティンワークが苦手で、どうしても「仕組み化」してしまわないと続かないんですよね。
そこで今回は、ClaudeとPythonを組み合わせて、WordPressへの記事投稿を完全自動化するパイプラインを構築してみました。これが想像以上に快適だったので、備忘録も兼ねてその仕組みを共有したいと思います。
なぜClaudeとPythonなのか?
これまでもOpenAIのAPIを使って記事の自動生成を試したことはあったのですが、最近はClaude(特にClaude 3.5 Sonnet)の文章生成能力の高さに驚かされています。より自然で、人間味のある文章を書いてくれる印象です。
そして、そのClaudeが生成したテキストをWordPressに流し込むための接着剤として、私の得意なPythonを採用しました。Pythonなら、APIの叩き方からWordPressのREST APIへの連携まで、数行のコードでサクッと書けてしまいます。
自動化パイプラインの全体像
今回構築したシステムの全体像は非常にシンプルです。
- テーマの決定: スクリプト実行時にキーワードやテーマを渡す。
- 記事生成 (Claude API): PythonからClaudeのAPIを叩き、指定したテーマでHTML形式の記事本文を生成させる。
- WordPress投稿 (REST API): 生成されたHTMLとタイトルを、WordPressのREST API経由で「下書き」または「公開」状態で投稿する。
これをCronやAWSのEventBridgeなどで定期実行すれば、何もしなくても勝手にブログが更新されていくという寸法です。
実装のポイントと注意点
実際にPythonでスクリプトを書く際のポイントをいくつか挙げておきます。
1. 認証情報の分離
これは基本中の基本ですが、ClaudeのAPIキーやWordPressのアプリケーションパスワードは、絶対にスクリプト内に直書きしてはいけません。私は .env ファイルに環境変数として切り出し、python-dotenv ライブラリで読み込むようにしています。GitHubにうっかりプッシュして大惨事…なんてことは避けたいですからね。
2. WordPress REST APIの活用
WordPressへの投稿は、標準で用意されているREST APIを使うのが一番簡単です。requests ライブラリを使って、JSON形式でデータをPOSTするだけです。
import requests
from requests.auth import HTTPBasicAuth
url = "https://your-domain.com/wp-json/wp/v2/posts"
auth = HTTPBasicAuth("your_username", "your_app_password")
data = {
"title": "生成されたタイトル",
"content": "生成されたHTMLコンテンツ",
"status": "publish",
"categories": [13]
}
response = requests.post(url, auth=auth, json=data)
こんな感じで、驚くほど簡単に投稿できてしまいます。
3. プロンプトの工夫
Claudeに良い記事を書いてもらうためには、プロンプト(指示出し)が命です。「HTML形式で出力して」「見出しタグ(h2, h3)を適切に使って」「Heywaというペルソナで、少し砕けた口調で書いて」といった具体的な指示をシステムプロンプトに組み込むことで、修正の手間を大幅に減らすことができます。
まとめ:自動化で生まれた時間を「考えること」に使う
この自動化パイプラインを構築してから、ブログ運営の心理的ハードルが劇的に下がりました。もちろん、AIが書いた記事をそのまま公開するのではなく、最後に自分の目でチェックして微調整を加えるプロセスは残していますが、ゼロから書き始めるのに比べたら雲泥の差です。
浮いた時間で、ボートレース予測のバックテスト(直近2年分のデータで検証中!)や、ライトノベルの執筆など、よりクリエイティブな活動に脳のリソースを割けるようになりました。
「ルーティンは機械に任せ、人間は考えることに集中する」。システム思考の基本ですが、改めてその強力さを実感しています。皆さんもぜひ、PythonとAIを使った自動化にチャレンジしてみてください。

