WordPressに自動投稿する
テキストのアップロード
import requests
# タグの登録
tag_data = {
'name': '漫画',
'slug': 'comic',
'description': '',
}
tag_res = requests.post(
f"https://xxx.com/wp-json/wp/v2/tags",
json=tag_data,
headers={'Content-type': 'application/json'},
auth=(wp_user, wp_pass),
)
# 記事の登録
data = {
'title': title,
'content': content,
'categories': 785,
'tags': tag_resg['id'],
'slug': title,
'status': 'draft',
}
res = requests.post(
f"https://xxx.com/wp-json/wp/v2/posts",
json=data,
headers={'Content-type': 'application/json'},
auth=(wp_user, wp_pass),
)
mp4のアップロード
import requests
# WordPressの認証情報とアップロードしたいファイルのパス
wp_endpoint = 'https://xxx.com/wp-json/wp/v2/media'
username = 'ユーザー名'
password = 'アプリケーションパスワード'
file_path = 'C:/Users/xxx/xxx.mp4'
file_name = 'xxx.mp4'
# ヘッダー設定
headers = {
"Content-Disposition": f"attachment; filename={file_name}",
"Authorization": f"Basic {requests.auth._basic_auth_str(username, password)}",
}
# ファイルを開いてアップロード
with open(file_path, 'rb') as file :
response = requests.post(wp_endpoint, headers=headers, files={"file": file})
# レスポンス確認
if response.status_code == 201 :
print("ファイルが正常にアップロードされました")
else :
print("ステータスコード:", response.status_code)
print("レスポンス:", response.text)
画像1枚のアップロード
import requests
#
wp_endpoint = 'https://xxx.com/wp-json/wp/v2/media'
username = 'ユーザー名'
password = 'アプリケーションパスワード'
file_path = 'C:/Users/xxx/xxx.jpg'
# ヘッダー設定
headers = {
"Authorization": f"Basic {requests.auth._basic_auth_str(username, password)}"
}
# ファイルを開いてpostリクエストでアップロード
with open(file_path, "rb") as file :
file_name = os.path.basename(file_path)
files = {
"file": (file_name, file, "image/jpeg")
}
response = requests.post(wp_endpoint, headers=headers, files=files)
# レスポンス確認
if response.status_code == 201 :
print("ファイルが正常にアップロードされました")
else :
print(f"ステータスコード: {response.status_code}")
print(f"エラー: {response.text}")
画像の一括アップロード
import os
import requests
import time
# アップロードするファイルの入ったフォルダパス
dir_path = "C:/Users/9mlor/OneDrive/デスクトップ/up/"
file_names = os.listdir(dir_path)
for file_name in file_names:
# 一応ファイル名を確認しておく
print(file_name)
# Content-Typeの指定
# file_name = os.path.basename(file_path)
file_extention = file_name.split('.')[-1].lower()
if file_extention in ['jpg', 'jpeg']:
contentType = 'image/jpg'
elif file_extention == 'png':
contentType = 'image/png'
elif file_extention == 'webp':
contentType = 'image/webp'
elif file_extention == 'mp4':
contentType = 'movie/mp4'
else:
print('ファイル形式はサポートされていません')
exit()
# リクエストのヘッダー情報
header_info = {
'Content-Type': contentType,
'Content-Disposition': f'attachment; filename="{file_name}"'
}
# ローカルのファイルのバイナリデータを読み込む
with open(dir_path + file_name, 'rb') as f:
img_bytes = f.read()
# メディアのアップロード
response = requests.post(
'https://bijo.blog/?rest_route=/wp/v2/media',
headers=header_info,
data=img_bytes,
auth=('@bijo_blog', 'AuAO ndSo uLkx 7UaX qizB IdhA')
)
print('アップロード完了')
print(response.headers)
print(response.text)
time.sleep(3)
BACK