Python

Pythonでwordpressに自動で投稿する(python-wordpress-xmlrpc)

妻が中学のときにタグを手で打って作ったHPを移転することになりました。
かれこれ15年近く続けてきているので、データが多く結構途方にくれました。

15年間毎日日記を投稿するってすごいな、、、!!

環境

動作環境はWindows10 64bitでPython3.6.5(Anaconda3.5.1-0)

実現したいこと

Pythonからxserverのワードプレスへ記事を自動で投稿する方法についてまとめます!

方法

1.データの整形:Seleniumとrequestで本文取ってきた後、ひたすら力業で整形してtxt形式で保存
2.データの投稿:今回はここの記事

という2点があったのですが、今回はデータの投稿についてまとめたいと思います。

コード

これに”pip install python-wordpress-xmlrpc”で2.3のバージョンを入れた。
(conda install ***だとファイルが見つからなかったので、 Anaconda環境であったがpipで入れてしまった)


# -*- coding: utf-8 -*-
import time
from datetime import datetime
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.users import GetUserInfo
from wordpress_xmlrpc.methods.posts import GetPosts, NewPostdef main():
"""
変数を定義
"""
id="******"
password="******"
#idとpasswordはwordpressの管理画面に入るためのもの

url="https:***/xmlrpc.php"
#第3者が閲覧するURLの後ろに/xmlrpc.phpをつける。
#ワードプレスの管理画面の後ろにつけるとエラーになった

which="publish"
#which="draft"
#下書きに投稿するか本番で投稿するか選択

"""
クライアントの呼び出しなど
"""
wp = Client(url, id,password)
post = WordPressPost()

"""
実際に投稿する
"""
post.post_status = which
post.title = "タイトルをここに書く"
post.content = "本文をここに書く"
post.terms_names = {
"post_tag": ['希望するtag1', '希望するtag2'],
"category": ['希望するカテゴリー1', '希望するカテゴリー2'],
}
#過去に投稿した記事としたい場合、投稿日をここで指定。例として2018年1月1日10時5分10秒に投稿した例を示す。
post.date=datetime.strptime("2018/1/01 10:05:10","%Y/%m/%d %H:%M:%S")
wp.call(NewPost(post))

if __name__=="__main__":
main()

 

ABOUT ME
Masaya
テラプログラミングとは造語です。テラ=地球・陸地といった意味があるので、思い描いた理想をプログラミングで実現する=テラプログラミングと名付けています。 1987年生まれです。 職業はメーカでエンジニアをしており、それはそれで好きなのですが、好奇心と探求心、それと本当はコンプレックスのせいもあったのかもしれませんが、瞑想や心理学、いわゆる”スピリチュアル系”方面が昔から大好きです。