LoginSignup
16

More than 5 years have passed since last update.

PythonでWordpressの投稿を自動化してみた

Posted at

やりたいこと

  • PythonからWordpressの投稿を行う

環境

  • Cloud9
  • Python3
  • PhontomJS *
  • Selenium *

導入は[Python データ分析入門マニュアル] > [スクレイピングをPythonでするときは、Cloud9・Selenium・Herokuで決まり!誰でもできるスクレイピングマニュアル]を参照してください。こちらにCloud9上でSelenium環境を作る方法などをすべてまとめています。

スクレイピングをPythonでするときは、Cloud9・Selenium・Herokuで決まり!誰でもできるスクレイピングマニュアル
https://review-of-my-life.blogspot.jp/2017/09/selenium-5-minutes-setup-on-cloud9.html

実装

  • ワードプレスのログイン画面に移動
  • IDとパスワードを入力
  • 送信ボタンを入力
  • 新規投稿画面に移動
  • タイトルと内容を入力
  • 下書き保存をクリック

スクリプト

wordpress.py

from selenium import webdriver #seleniumのimport
import time

browser = webdriver.PhantomJS() 
loginURL = "http://yoursite.com/wp/wp-login.php" #yoursite.comにはあなたのサイトのアドレスを書いてください
browser.get(loginURL)
time.sleep(3)
print(browser.title) # "あなたのサイト名 ‹ ログイン"と表示される

#ログイン

username = "" #あなたのユーザー名を入れてください
password = "" #あなたのパスワードを入れてください

browser.find_element_by_css_selector("#user_login").send_keys(username)
browser.find_element_by_xpath("//*[@id='user_pass']").send_keys(password)
browser.find_element_by_css_selector("#wp-submit").click()
time.sleep(3) # waiting for sign in 

print(browser.title) #"ダッシュボード ‹ あなたのサイト名 — WordPress"と表示される

#投稿(下書き)

browser.get("http://yoursite.com/wp/wp-admin/post-new.php")
time.sleep(3) # waiting for sign in 
print(browser.title) #"新規投稿を追加 ‹ あなたのサイト名 — WordPress"と表示される

title = "Test"
content = "test post"
browser.find_element_by_css_selector("#title").send_keys(title)
browser.find_element_by_css_selector("#content_ifr").send_keys(content)
browser.find_element_by_css_selector("#save-post").click
time.sleep(3) #waiting for post

詳細

  • 手順等は省略しているので、詳細は以下の記事を読んでください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16