Python プログラムで XML-RPC を使って WordPress に自動投稿するプログラムです。
「下書き」として投稿したり「公開済み」として投稿したり、様々な設定が可能です。
XML-RPCとは?
XML ← データの形式が XML
RPC ← リモートプロシージャコール
XML-RPC は、HTTP プロトコルを利用してサーバーと通信をします。
通常はブログへの自動投稿で使用するケースが多いですが、ブログからデータを取得したり、画像を投稿したりといろいろなことができます。
XML-RPC は Python だけでなく様々な言語でも簡単に使える
C、C++、Java、PHP、Ruby、Python などで使えます。(しかも簡単に)
構成図
以下、構成図を作りました。
最終的にはレンタルサーバーの WordPress にアクセスをして自動投稿をしますが、そのためには「Python環境」が必要です。
最近のレンタルサーバーには「Python環境」が入っていることが多いですが、XML-RPC を利用するためのパッケージをインストールする必要があります。
そう考えると、レンタルサーバーでその要件を満たしているところはないと思うので、構成図のように「Python環境」を独自に用意する必要があります。
【Python】【CentOS7】Python 3.6.2 を「yum からインストールする手順」と「ソースからインストールする手順」
WordPress 側の設定
WordPress 側の設定は特に必要ありません。
「アカウント」と「パスワード」が分かれば簡単にプログラムから自動投稿できます。
Pythonプログラムを実行するコンピュータ上での設定
先ほどの構成図で言うと、以下の赤い枠で囲まれたコンピュータです。
今回インストールした環境
今回インストールした環境です。
(pyenv) [test@SAKURA_VPS scraping]$ cat /etc/redhat-release |
python-wordpress-xmlrpcプラグインのインストール手順
pip コマンドで python-wordpress-xmlrpc プラグインをインストールします。
(pyenv) [test@SAKURA_VPS scraping]$ pip install python-wordpress-xmlrpc |
インストールされているかどうか確認します。
(pyenv) [test@SAKURA_VPS scraping]$ pip list |
簡単な Python プログラムを作成して試しに投稿してみる
「python-wordpress-xmlrpc」プラグインをインストールしたら、早速簡単なプログラムを作成して WordPress に投稿してみます。
from wordpress_xmlrpc import Client, WordPressPost
# 投稿するサイトのURLと、アカウントとパスワードを設定します。 post = WordPressPost() # 投稿する記事のタイトルを設定します。 # 記事の本文を設定します。 |
実行結果
プログラムを実行した結果です。
図を見ると分かりますが、「下書き」として投稿されます。
「下書き」ではなく「公開」で投稿したい場合
デフォルトでは「下書き(draft)」として投稿されます。
私としてはそれで十分だと思いますが、以下にいきなり「公開(publish)」のステータスで投稿したい場合のプログラムを記載します。
from wordpress_xmlrpc import Client, WordPressPost wp = Client(‘http://box-cm.com/xmlrpc.php’, ‘アカウント名を入力’, ‘パスワードを入力’) post = WordPressPost() |
実行結果
プログラムを実行した結果です。
「公開済み」として投稿されます。
サイトを確認するとちゃんと公開されています。
参考サイト
具体的なサンプルプログラムも豊富で非常に分かりやすかったです!
http://python-wordpress-xmlrpc.readthedocs.io/en/latest/overview.html
まとめ
あっさりと Python プログラムから WordPress に投稿することができました。
コメント