Posted at

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

More than 1 year has passed since last update.


やりたいこと


  • 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



詳細


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

https://review-of-my-life.blogspot.jp/2017/11/python-wordpress.html