PythonでWordPressのRest APIを使って投稿する方法

今後のスクレイピングに役に立ちそうなので備忘録です。
まずは、Application Passwords plugin プラグインをインストールします。
以下を作って、実行するとREST APIを経由して投稿することができます。
もちろん画像もOK。

REST APIで投稿

https://qiita.com/yuyu_rg/items/3a5dc686fe8f22ff0fcb
※user_id ってのは、投稿者のユーザIDね。

REST APIで画像を投稿

https://qiita.com/sapuri/items/cd6deffd5654f5786fc8
※画像はプログラムファイルを基点として指定

コードの控え

#coding: utf-8

import requests
import json

passward = "anCN 2JnY rcEu H2z4 JRi2 T4Fr" # 自分の環境に合わせて変更してください
user_id = "admin" # 自分の環境に合わせて変更してください
end_point_url ="http://xxx.xyz/wp-json/wp/v2/posts" # 自分の環境に合わせて変更してください

p_title = "APIからの投稿"
p_content = "内容のサンプル<br />サンプルあああああああ"
p_status = "draft"

payload = {
            'title': p_title ,
            'content' : p_content ,
            'status' : p_status
            }

headers = {'content-type': "Application/json"}

r = requests.post( end_point_url, data=json.dumps(payload) , headers=headers, auth=(user_id, passward) )
print(r)

WordPress REST APIを使ってPython で新規投稿する方法

import requests

user_id = ''
app_password = ''
end_point_url = 'http://example.com/wp-json/wp/v2/media'

image_path = '/path/to/image.jpg'
file_name = 'image.jpg'

headers = {
    'Content-Disposition': f'attachment; filename="{file_name}"'
}

# load image file
f = open(image_path, 'rb')
img_data = f.read()
f.close()

response = requests.post(end_point_url, data=img_data, headers=headers, auth=(user_id, app_password))

# media_id = response.json()['id']

[WP REST API v2] Pythonで画像をアップロード

コメントを残す

メールアドレスが公開されることはありません。